Introduce CustomPropertyTransformation

This CL introduces a new CustomPropertyTransformation to the DSL. This
allows users of STL to create custom transformations that are more
complex than the default transformations. The goal is to create custom
transformations using our Motion Mechanics to implement better Dual
Shade transitions. See go/stl-dual-shade for details.

At first these custom transformations will be limited to normal
transition specs, and we throw an exception when they are defined in a
preview spec or overscroll spec. We plan to rework overscroll and
previews in the coming weeks, at which point we will reconcile them with
custom transformations.

Bug: 376438969
Test: atest CustomTransformationTest
Test: atest SceneTransitionLayoutTest
Flag: com.android.systemui.scene_container
Change-Id: I91a27f82d458b2acaffb8c9cbd096dde9c2c04a2
17 files changed