Bootstrap freeform external displays.

To get freeform external display one can:
1. Enable freeform windows in developer options;
2. Reboot the device;
3. Connect an external device.

All tasks launched in the external display are then launched in freeform
mode by default, and centered in that display.

There are a lot to do after this CL. It needs caption and window decor
so it can be maximized, restored, drag-moved and drag-resized. There is
no system UI on external display yet so we can't launch arbitrary
activities on it, nor can we minimize anything.

I'm using ActivityView for testing and it uses input forwarder, but we
need to solve the use of mouse and keyboard when it goes to a real
external display.

In addition, tightened the visibility of DisplaySettings class.

Bug: 111840884
Test: go/wm-smoke
Test: activity launching on external freeform displays.
Test: atest DisplaySettingsTests
Change-Id: Ie2a05110ada60b054ac35dae948ad309ea378b1c
diff --git a/services/core/java/com/android/server/wm/DisplayContent.java b/services/core/java/com/android/server/wm/DisplayContent.java
index 6286062..cb19abd 100644
--- a/services/core/java/com/android/server/wm/DisplayContent.java
+++ b/services/core/java/com/android/server/wm/DisplayContent.java
@@ -1318,9 +1318,7 @@
         final int dw = displayInfo.logicalWidth;
         final int dh = displayInfo.logicalHeight;
         config.orientation = (dw <= dh) ? ORIENTATION_PORTRAIT : ORIENTATION_LANDSCAPE;
-        // TODO: Probably best to set this based on some setting in the display content object,
-        // so the display can be configured for things like fullscreen.
-        config.windowConfiguration.setWindowingMode(WINDOWING_MODE_FULLSCREEN);
+        config.windowConfiguration.setWindowingMode(getWindowingMode());
 
         final float density = mDisplayMetrics.density;
         config.screenWidthDp =