[Sync] Switch bots to run integ tests for autofill as USS.

ModelTypeControllers are responsible for posting to the model thread.
They also typically grab the bridge or the processor through the bridge
when doing this. UI thread based controllers can simply go through
their SyncClient to do this, and all is well. However, for autofill,
and any WebDataService backed type, they cannot, they can only grab the
weak ref to their bridge on their model thread.

Initially, we were simply posting a task to the model thread that
contained a SyncClient pointer. This turns out to not be safe. During
shutdown, autofill would consistently crash here by posting a task to
the model thread, and before that gets resolved, the SyncClient is
destroyed. Presumably all the other posts to model thread were unsafe
as well, though hitting the race condition was more unlikely.

To get around this we now post a task with a ref counted
WebDataService. This required an ability to override the default
handling of the ModelTypeController, and any WebDataService backed
controller should use the new class created here.

While I was in there, some slight refactoring to ModelTypeController
and ModelTypeDebugInfo to make the other code changes as clean as
possible.

BUG=686172

Review-Url: https://codereview.chromium.org/2672493002
Cr-Commit-Position: refs/heads/master@{#450736}
13 files changed