Add [GestureContext] #MotionMechanics

This also adds two default implementations:
- [ProvidedGestureContext] to be used whenever the context is manually managed
- [DistanceGestureContext] to determine the `direction` from the gestures `distance`

Background on design and motivation in go/motionvalue-design

Flag: NONE Initial commits for new library, currently unused.
Test: atest mechanics_tests
Bug: 379248269
Change-Id: I2827a31b516e95bea914cdd6c2526cb39d5f7e0e
2 files changed