Remove dependency on BrowserThread::FILE from Sync code

This change moves definition of a task runner for a sync group to a
native model code outside of Sync, in this case - to extensions code.

This might be a bit controversial because syncer::GROUP_FILE could
theoretically include sync types other than syncer::EXTENSION_SETTINGS
and syncer::APP_SETTINGS, but in reality those are the only two
possible sync types that currently sync on the FILE thread. And
since we are migrating to the new TaskScheduler API and sequences,
if we need to introduce a new sync type in the future it should
run on a new, separate sequence and avoid sharing the FILE group.

I added a new function that is supposed to return a singleton
instance of SequencedTaskRunner -  extensions::GetBackendTaskRunner().
For now the implementation of this function still uses
BrowserThread::FILE but that should be changed to use
LazySequencedTaskRunner as soon as the rest of extensions storage
code is modified to share the same task runner.

I noticed that extensions are unavailable of iOS and Android so I removed
the syncer::GROUP_FILE option from iOS and Android specific code.

To summarize, the next steps are:
1) Change extensions code to use extensions::GetBackendTaskRunner()
   everywhere the FILE thread is currently used.
2) Modify GetBackendTaskRunner() to use LazySequencedTaskRunner instead
   of the FILE thread task runner.

BUG=689520,731903

Review-Url: https://codereview.chromium.org/2944993002
Cr-Original-Commit-Position: refs/heads/master@{#482455}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 8caf9b2d9cc526400419885f23c373430a34a8f0
1 file changed