Sync starting language and input method preferences

Users who use additional Chromebooks or who recreate their accounts have
to manually set up their preferred languages, input methods and IMEs on
each device, because only the locale (display language) syncs.

We don't forcibly keep these settings in sync because different machines
may use different built-in or peripheral keyboards. But we can make the
set-up process smoother if we know what settings the user chose most
recently.

This CL creates syncable of the language and input
methods preferences, so the server always has the latest changes.

When, and only when, a user logs in and syncs for the first time on a
device, we take the local variants the user has already chosen for this
machine, and we add to them the global variants that come down from
sync. This only happens at most once. It should only be additive, not
remove any chosen settings.

Some caveats:
 * If the user makes a change to one language/input setting, sync all
   three interdependent settings so the sync server's settings are
   always internally consistent.

BUG=298345
R=nkostylev@chromium.org, yukishiino@chromium.org, hajimehoshi@chromium.org
CC=nona@chromium.org

Committed: https://crrev.com/cceac6fae685fd86d6f347d6712886549e372231
Cr-Commit-Position: refs/heads/master@{#306164}

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

Cr-Commit-Position: refs/heads/master@{#306976}
11 files changed