WindowAnimator.animate repeatedly calls into
handleCompleteDeferredRemoval() which wasn't checking
the same conditions as removeIfPossible() (which is
the function that actually sets mDeferredRemoval). This
meant that removeImmediately() would be called early
at times and break CTS tests.
Similarly, moved the onDisplayRemoved call in keyguard
controller to removeImmediately() so that it wouldn't
get called prematurely.
Also fix a NPE in DefaultTransitionHandler
Bug: 183993924
Test: atest MultiDisplayPolicyTests (with shell-transitions)
Change-Id: I73b10a290a3b2be6ea4d978190863cc6ce62ef8f