WebApp: Implement initialization for WebAppSyncBridge.

This code is disabled by default behind kDesktopPWAsWithoutExtensions base feature.

- Implement WebAppSyncBridge::GetClientTag and GetStorageKey
to infer them from launch_url.

On Init, pass sync metadata from WebAppDatabase to WebAppSyncBridge's
change_processor.

Read WebAppRegistrar apps data to implement WebAppSyncBridge::GetData
(GetData is the sync "view" for our model data).

Unit tests and browser tests will be added later in a follow up CL.
An MVP implementation of the bridge needed first.

This CL follows
"Implementing ModelTypeSyncBridge: Initialization"
section described here:
https://chromium.googlesource.com/chromium/src/+/HEAD/docs/sync/model_api.md#Initialization

In next CLs:
Implement: MergeSyncData, ApplySyncChanges, "Local changes" sections.

Sync-initiated installs/uninstalls will be an interesting case.

Bug: 860583
Change-Id: If8c6e78e48031f4caf9eb39ef68f9de65ec65c6a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1797824
Reviewed-by: Alan Cutter <[email protected]>
Reviewed-by: Marc Treib <[email protected]>
Commit-Queue: Alexey Baskakov <[email protected]>
Cr-Commit-Position: refs/heads/master@{#701420}
6 files changed