Provides OneHandedController for wm shell features

Provides OneHandedController singleton instance through dagger.
Then Bubble can register OneHandedTransitionCallback to monitor
- onStartFinished(Rect bounds)
- onStopFinished(Rect bounds)
and use the bounds.top to offset dismiss view in one handed mode

Test: Manual, enable and check onStateChanged() callbacks
Test: atest WMShellUnitTests
Bug: 208926540
Change-Id: I2c3f70ce6344a4445049ee6d8be2d4965ea9d11d
7 files changed