Transitions - Add occlusion state

Add specific OCCLUDED state, and manage transitions between states.

Refactor all transition interactors to focus around the From starting
states.

Add dream overlay-specific callback, in addition to dreaming
information, as the overlay can control exactly when the dream exits.

Test: atest KeyguardRepositoryImplTest DreamOverlayCallbackControllerTest
DreamOverlayServiceTest KeyguardTransitionScenariosTest
DreamingToLockscreenTransitionViewModelTest
Bug: 195430376

Change-Id: I096a174729574964cc54fcf5a01522360491693c
29 files changed