Make Widget::InitParams support movable types

This CL makes Widget::InitParams movable, and adds to it a
movable element `init_properties_container` of type
PropertyHandler. This adds support to views::Widget to allow
its users to set any arbitrary properties that will be set
on the native widget's window before it is initialized and
parented.

This way we can watch for windows with particular properties of
interest in WindowObserver::OnWindowAdded().

Example use case: Mark widgets to be ignored in the mini_views
before they're added in the desks containers. This avoids refreshing
the mini_views unnecessarily. This will be handled in a follow-up
CL.

BUG=979434, 866622
TEST=Added a new test.

Change-Id: I26f4c5db77e7acd9c4b52ea77775376d52c50897
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1709966
Commit-Queue: Scott Violet <[email protected]>
Reviewed-by: Scott Violet <[email protected]>
Cr-Commit-Position: refs/heads/master@{#683208}
diff --git a/ash/focus_cycler_unittest.cc b/ash/focus_cycler_unittest.cc
index 4637b76..ab4c2e2 100644
--- a/ash/focus_cycler_unittest.cc
+++ b/ash/focus_cycler_unittest.cc
@@ -286,7 +286,7 @@
   widget_params.ownership =
       views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET;
   widget_params.context = CurrentContext();
-  browser_widget->Init(widget_params);
+  browser_widget->Init(std::move(widget_params));
   browser_widget->Show();
 
   aura::Window* browser_window = browser_widget->GetNativeView();