Add a Restore() method to ValueStore and make StorageAPI use it
Take the first steps in preventing the Storage from getting and staying
corrupted. This lets us Restore() a ValueStore when it's corrputed, and tries to
do so in the StorageAPI calls.
This also refactors so that there's a Local and Sync SettingsBackend - this has
the added advantage of meaning we don't decorate the Local stores with Sync
behavior.
BUG=261623

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@252617 0039d316-1c4b-4281-b951-d872f2087c98
SVN changes up to revision 252617
Fixes hintText color in uppercase.

BUG=345399

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@252618 0039d316-1c4b-4281-b951-d872f2087c98
SVN changes up to revision 252618