SurfaceControl: Provide Transaction#remove() method.

When we switched from destroy() to reparent(..., null) we introduced
a regression where the CloseGuard was not released. reparent(..., null) can
not release the CloseGuard because the caller may want to retain the control.
It seems a frustrating burden to require users to write: "reparent(null), release()"
where previously we provided destroy so we provide a helper #remove method.

Test: Existing tests pass
Bug: 123923589
Bug: 122728663
Change-Id: I60b529573f8868624c70b78c7a71a4d7c7827ff7
diff --git a/services/core/java/com/android/server/wm/AppWindowToken.java b/services/core/java/com/android/server/wm/AppWindowToken.java
index 3246a87..2cc85e2 100644
--- a/services/core/java/com/android/server/wm/AppWindowToken.java
+++ b/services/core/java/com/android/server/wm/AppWindowToken.java
@@ -2504,7 +2504,7 @@
     public void onAnimationLeashDestroyed(Transaction t) {
         super.onAnimationLeashDestroyed(t);
         if (mAnimationBoundsLayer != null) {
-            t.reparent(mAnimationBoundsLayer, null);
+            t.remove(mAnimationBoundsLayer);
             mAnimationBoundsLayer = null;
         }