Handle non-app windows in app rotation transition asynchronously

When starting activity in different orientation with shell transition,
the display will be rotated immediately. To avoid jump cut of non-app
windows by the change, those windows will be faded out in old rotation.
And when the app transition is done, the windows will be faded in with
current rotation.

This also reduces transition latency because the transition can start
once the activities are ready, without waiting for those non-activity
window to complete redraw.

Bug: 210839369
Test: atest TransitionTests#testAppTransitionWithRotationChange
Test: adb shell setprop persist.debug.shell_transit 1; reboot
      Launch landscape app from portrait home.

Change-Id: I0afc3fcdb3b2ee9d23d5d4addc488ae085a2afd8
8 files changed