Finally rip the global StackingClient bandaid off.

- Removes the aura::client::SetStackingClient(StackingClient*) interface.
- Moves the ash StackingController from a singleton owned by ash::Shell to one StackingController per RootWindow owned by the ash::RootWindowController. (Also removes a spurious delegate method, where every implementation creates the same object, including tests.)
- Removes the global DesktopStackingClient and related interfaces.
- Fix the ChromeViewsDelegate so that it still sets context in chromeos builds.
- Rename content::ShellStackingClientAsh to content::MinimalAsh to reflect what it really does.

In addition, the following fix ups apply:

- Previously, WebContentsViewAura asserted that it needed a context window. Now if no context window is provided, it isn't added to an aura hierarchy. There are times when that context doesn't exist: various chromeos dialogs that directly invoke WebView and toplevel extension/app windows that are created from background pages that don't have contexts.
- Because of that, added a few of NULL checking to RenderWidgetHostViewAura. (Other methods NULL checked Window::GetRootWindow(), but there were a few that didn't and relied on the old NULL means lookup in the StackingClient behaviour.)

BUG=161882

Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=177182

Review URL: https://codereview.chromium.org/11829040

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@178083 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/ash/root_window_controller.h b/ash/root_window_controller.h
index e5e85ef1..2dae441 100644
--- a/ash/root_window_controller.h
+++ b/ash/root_window_controller.h
@@ -32,6 +32,7 @@
 
 namespace ash {
 class Launcher;
+class StackingController;
 class SystemTray;
 class ToplevelWindowEventHandler;
 
@@ -176,6 +177,8 @@
   scoped_ptr<aura::RootWindow> root_window_;
   RootWindowLayoutManager* root_window_layout_;
 
+  scoped_ptr<StackingController> stacking_controller_;
+
   // Widget containing system tray.
   StatusAreaWidget* status_area_widget_;