Optimize animation flows

As more code uses keyguard transition animations, more and more
continuations are piling up on the main thread, with that vast
majority of them rerunning the same Flow over and over.

This introduces intermediate SharedFlows in
KeyguardTransitionAnimationFlow. Each transition is an Edge in the
graph, and each Edge now has a dedicated SharedFlow object on which
they can collect very specific events.

Bug: 318582599
Test: atest com.android.systemui.keyguard.ui
Flag: N/A - Fixes baseline jank issues

Change-Id: I5f9ec5f52e36e86b640f21924c874c7d0e70fc55
67 files changed