Reland "Prevent dismissing starting window when reopening app"

If we are changing the visibility while the app is shortly before
drawing it's first frame, we cleared out the draw state, leading
to a hang. We also had this issue with starting windows, but that
was a fix only for starting windows, but cascaded the underlying
issue.

Now, we only clear out the draw state if is has fully drawn - this
covers the Chrome case but doesn't clear out draw state if it's
just about to show.

Furthermore, we also add the window to mResizingWindows such that
the client is expected to call back to us with reportDrawn, in all
the edge cases.

Test: go/wm-smoke
Test: Open TTS settings, go back, open again
Test: All the use cases from the linked bug
Bug: 135706138
Bug: 135661232
Bug: 135976008
Bug: 135921478
Bug: 135780312
Bug: 135084202
Fixes: 134561008
Change-Id: I69f893a19d6426710bb0b8b0e18f3d2664cb6412
(cherry picked from commit a00ebe4606daafeb0f9daa16d800c523cf1588b8)
1 file changed