ViewRoot: Ensure we release surface from setWindowStopped.

Otherwise, we may attempt to reinitialize the ThreadedRenderer with
a Surface which is not actually valid, e.g. from handleWindowFocusChanged.
Entering a code path where the threaded renderer does not heed the
stopped signal. This change ensures isValid returns false when the Surface
is not valid preventing us from calling initialize/initializeIfNeeded, or
udpateSurface.

Bug: 62536731
Test: For the monkeys.
Change-Id: I65939a29db4db70c6eb6bc4b258a9ed09a86e0ce
diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java
index f6d9a16..722d54a 100644
--- a/core/java/android/view/ViewRootImpl.java
+++ b/core/java/android/view/ViewRootImpl.java
@@ -1334,6 +1334,7 @@
                 if (renderer != null) {
                     renderer.destroyHardwareResources(mView);
                 }
+                mSurface.release();
             }
 
             for (int i = 0; i < mWindowStoppedCallbacks.size(); i++) {