Simplify getting top display focused stack

Change the container of ActivityDisplay to a list sorted by
z-order. The list will be updated when moving window container
with its parent that includes display to top or bottom.

Count the total time of calling getTopDisplayFocusedStack
until boot complete broadcast is done (about 4500 times):
  Original: 447 ms
  New     : 116 ms (include the update time)

Bug: 112531182
Test: atest FrameworksServicesTests:ActivityStackSupervisorTests
Test: atest WindowManagerSmokeTest
Test: atest ActivityManagerMultiDisplayTests

Change-Id: I42e9fc61916d0513d3e7b340fd528bc4f560fd45
diff --git a/services/core/java/com/android/server/wm/DisplayContent.java b/services/core/java/com/android/server/wm/DisplayContent.java
index ba46737..32fa9bf 100644
--- a/services/core/java/com/android/server/wm/DisplayContent.java
+++ b/services/core/java/com/android/server/wm/DisplayContent.java
@@ -921,6 +921,11 @@
     }
 
     @Override
+    DisplayWindowController getController() {
+        return (DisplayWindowController) super.getController();
+    }
+
+    @Override
     public Display getDisplay() {
         return mDisplay;
     }