[sessions]: Componentize TabRestore code

This CL componentizes core TabRestore code, notably:
- TabRestoreService
- its persistent and in-memory subclasses
- its delegate
- its helper
- its observer

The code has no problematic dependencies, so componentization is
straightforward.

BUG=371476

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

Cr-Commit-Position: refs/heads/master@{#349624}
diff --git a/chrome/browser/ui/browser.cc b/chrome/browser/ui/browser.cc
index a01fd452..5e3fe5e 100644
--- a/chrome/browser/ui/browser.cc
+++ b/chrome/browser/ui/browser.cc
@@ -75,7 +75,6 @@
 #include "chrome/browser/sessions/session_service.h"
 #include "chrome/browser/sessions/session_service_factory.h"
 #include "chrome/browser/sessions/session_tab_helper.h"
-#include "chrome/browser/sessions/tab_restore_service.h"
 #include "chrome/browser/sessions/tab_restore_service_factory.h"
 #include "chrome/browser/ssl/security_state_model.h"
 #include "chrome/browser/sync/profile_sync_service.h"
@@ -162,6 +161,7 @@
 #include "components/favicon/content/content_favicon_driver.h"
 #include "components/history/core/browser/top_sites.h"
 #include "components/search/search.h"
+#include "components/sessions/core/tab_restore_service.h"
 #include "components/sessions/session_types.h"
 #include "components/startup_metric_utils/startup_metric_utils.h"
 #include "components/translate/core/browser/language_state.h"