splitscreen: Drag maximized window in tablet mode into splitscreen.

This is an initial cl for app windows dragging in tablet mode.

Mocks: No exactly mock currently. Should be similar to tab dragging in tablet mode,
https://docs.google.com/presentation/d/1zCV2v5rXFUndWC5ECMKj06i5WNbRJ-uZWyZTFxU8dEE/edit#slide=id.g21b4c071a9_0_116

See doc for the context:
https://docs.google.com/document/d/1wq5F2P-CVokPEJT1V5-QIbQM6wjh-E65E6wPb6tOV7s/edit?ts=5b0ee6ae

Recorded video:
https://drive.google.com/file/d/1ZlDFDyB4-TpE-AQaVWbG8Ed2XwtkEC2q/view?usp=sharing

Changes in this cl:
- Add a new feature flag --enable-features=DragAppsInTabletMode and also expose it to
  chrome flag --enable-drag-apps-in-tablet-mode.

- Added TabletModeAppWindowDragController to help handle app windows dragging in tablet mode.
  Only maximized window can be dragged currently. It can be dragged into splitscreen or restore
  back to maximized mode. If the window cannot be snapped, it will always restore back to
  maximized mode after dragging.

- Rename TabletModeWindowResizer to TabletModeBrowserWindowDragController. And added
  TabletModeWindowDragController as the base class of TabletModeBrowserWindowDragController and
  TabletModeAppWindowDragController.

Bug: 847587
Change-Id: I3c1a0e023019114189524500290704f46f892d08
Reviewed-on: https://chromium-review.googlesource.com/1105127
Commit-Queue: Min Chen <[email protected]>
Reviewed-by: Mitsuru Oshima <[email protected]>
Reviewed-by: Xiaoqian Dai <[email protected]>
Cr-Commit-Position: refs/heads/master@{#571641}
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
index 930d415e..e10af2de 100644
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -3935,6 +3935,11 @@
      flag_descriptions::kEnableDragTabsInTabletModeName,
      flag_descriptions::kEnableDragTabsInTabletModeDescription, kOsCrOS,
      FEATURE_VALUE_TYPE(ash::features::kDragTabsInTabletMode)},
+
+    {"enable-drag-apps-in-tablet-mode",
+     flag_descriptions::kEnableDragAppsInTabletModeName,
+     flag_descriptions::kEnableDragAppsInTabletModeDescription, kOsCrOS,
+     FEATURE_VALUE_TYPE(ash::features::kDragAppsInTabletMode)},
 #endif  // OS_CHROMEOS
 
     {"enable-accessibility-object-model",