ash: Use SessionController instead of SessionStateDelegate

- Switch SessionStateDelegate callers to SessionController;
- Remove all migrated methods from SessionStateDelegate;
- Update tests;
- Update ash_shell_with_content;
- Changed ScreenLocker to set SessionState::ACTIVE before destroying
  LockWindow so that focus is properly restored after lock;
- Changed UserSessionManager to set SessionState::ACTIVE before
  creating browser window so that the created window receives focus;

BUG=648964,699234

Review-Url: https://codereview.chromium.org/2734933004
Cr-Commit-Position: refs/heads/master@{#458168}
diff --git a/ash/shell/shell_delegate_impl.cc b/ash/shell/shell_delegate_impl.cc
index e77396a..5da0db9 100644
--- a/ash/shell/shell_delegate_impl.cc
+++ b/ash/shell/shell_delegate_impl.cc
@@ -59,59 +59,19 @@
 
 class SessionStateDelegateImpl : public SessionStateDelegate {
  public:
-  SessionStateDelegateImpl()
-      : screen_locked_(false), user_info_(new user_manager::UserInfoImpl()) {}
+  SessionStateDelegateImpl() : user_info_(new user_manager::UserInfoImpl()) {}
 
   ~SessionStateDelegateImpl() override {}
 
   // SessionStateDelegate:
-  int GetMaximumNumberOfLoggedInUsers() const override { return 3; }
-  int NumberOfLoggedInUsers() const override {
-    // ash_shell has 2 users.
-    return 2;
-  }
-  bool IsActiveUserSessionStarted() const override { return true; }
-  bool CanLockScreen() const override { return true; }
-  bool IsScreenLocked() const override { return screen_locked_; }
-  bool ShouldLockScreenAutomatically() const override { return false; }
-  void LockScreen() override {
-    shell::CreateLockScreen();
-    screen_locked_ = true;
-    Shell::GetInstance()->UpdateShelfVisibility();
-  }
-  void UnlockScreen() override {
-    screen_locked_ = false;
-    Shell::GetInstance()->UpdateShelfVisibility();
-  }
-  bool IsUserSessionBlocked() const override {
-    return !IsActiveUserSessionStarted() || IsScreenLocked();
-  }
-  session_manager::SessionState GetSessionState() const override {
-    // Assume that if session is not active we're at login.
-    return IsActiveUserSessionStarted()
-               ? session_manager::SessionState::ACTIVE
-               : session_manager::SessionState::LOGIN_PRIMARY;
-  }
-  const user_manager::UserInfo* GetUserInfo(UserIndex index) const override {
-    return user_info_.get();
-  }
   bool ShouldShowAvatar(WmWindow* window) const override {
     return !user_info_->GetImage().isNull();
   }
   gfx::ImageSkia GetAvatarImageForWindow(WmWindow* window) const override {
     return gfx::ImageSkia();
   }
-  void SwitchActiveUser(const AccountId& account_id) override {}
-  void CycleActiveUser(CycleUserDirection direction) override {}
-  bool IsMultiProfileAllowedByPrimaryUserPolicy() const override {
-    return true;
-  }
-  void AddSessionStateObserver(SessionStateObserver* observer) override {}
-  void RemoveSessionStateObserver(SessionStateObserver* observer) override {}
 
  private:
-  bool screen_locked_;
-
   // A pseudo user info.
   std::unique_ptr<user_manager::UserInfo> user_info_;