Pass shelf instances, not root windows, for ash context menus.

Avoid most window->shelf lookup calls; misc cleanup.
Remove some ChromeLauncherController auto-hide functions.
(inline pref lookup function call, context menu ops)

Add Shell::OnShelfAlignmentChanged to revise set pattern.
(support ShelfLayoutManager::SetAlignment, w/o Shell::SetShelfAlignment)

Prerequisite for https://codereview.chromium.org/1760743002

BUG=557406
TEST=No behavior changes or regressions.
[email protected]

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

Cr-Commit-Position: refs/heads/master@{#381849}
diff --git a/ash/shell/shell_delegate_impl.cc b/ash/shell/shell_delegate_impl.cc
index d996a22..73539763 100644
--- a/ash/shell/shell_delegate_impl.cc
+++ b/ash/shell/shell_delegate_impl.cc
@@ -225,9 +225,9 @@
 }
 
 ui::MenuModel* ShellDelegateImpl::CreateContextMenu(
-    aura::Window* root_window,
+    ash::Shelf* shelf,
     const ash::ShelfItem* item) {
-  return new ContextMenu(root_window);
+  return new ContextMenu(shelf);
 }
 
 GPUSupport* ShellDelegateImpl::CreateGPUSupport() {