Move OpenTabsUIDelegate API away from SyncService

This cleans up the remaining leftovers of sessions-related logic from
interface SyncService, including:
1. The propagation of PROXY_TABS's runtime state directly from the
   controller to SessionSyncService.

2. The removal of the getter, SyncService::GetOpenTabsUIDelegate().

3. The removal of SyncServiceObserver::OnForeignSessionUpdated(), now
   replaced by a new subscription mechanism in SessionSyncService.

Besides simplifying core sync code, it also means client code (UI and
tests) have less dependencies, since they can now depend exclusively on
SessionSyncService.

Bug: 883199
Cq-Include-Trybots: luci.chromium.try:ios-simulator-cronet;luci.chromium.try:ios-simulator-full-configs
Change-Id: Id89410fa7149ae97db8e707adbab331e68d5cb8b
Reviewed-on: https://chromium-review.googlesource.com/c/1271101
Commit-Queue: Mikel Astiz <[email protected]>
Reviewed-by: Eugene But <[email protected]>
Reviewed-by: Devlin <[email protected]>
Reviewed-by: Ted Choc <[email protected]>
Reviewed-by: Trent Apted <[email protected]>
Reviewed-by: Sergio Collazos <[email protected]>
Reviewed-by: calamity <[email protected]>
Reviewed-by: Olivier Robin <[email protected]>
Cr-Commit-Position: refs/heads/master@{#607180}
47 files changed