Transitions: PRIMARY_BOUNCER -> GONE

If the device unlocks while the bouncer is in transit, the bouncer
will remain visible over the launcher for half a second while the
appear animation completes while the scrim immediately
disappears (while also undergoing numerous bad requests to transition
to invalid states).

To fix, control this animation using the transition repo instead and
ignore all other incoming requests while it is running.

Also, support a new mode for canceling transitions. Some transitions
may want to continue from the canceled point, others may want to run
the starting transition in full.

Fixes: 268596047
Test: ScrimControllerTest KeyguardRepositoryImplTest
NotificationShadeWindowViewControllerTest
KeyguardTransitionScenariosTest KeyguardTransitionRepositoryTest
Test: manual - Tested all bouncer variations, with and without face
unlock

Change-Id: Ib3f7587574a4445dffdd75493851ed066e3f191d
25 files changed