Fix unfreeze on unstarted freezer

Before, when trigger change transition and screen freeze before the
previous transition is finished, it will cancel the animation and call
to unfreeze. However, it will then unfreeze the new snapshot instead of
the old one, which cause a client crash because of missing leash.

The fix contains two changes:
1. Let SurfaceAnimator to take the snapshot from the freezer as it does
   for animation leash.
2. When an animation leash needs to be removed, check if it is the
   current animation leash (parent of the window surface) before
   reparenting the window surface back to the parent window surface.

Bug: 201622511
Bug: 196173550
Test: atest WmTests:WindowContainerTests
      #testStartChangeTransitionWhenPreviousIsNotFinished
Test: click demo app launch spit before the previous one is finished
Change-Id: I58fb05a971b49981d168d00c9fb42014b4d3cd4d
4 files changed