[Sync] Refactor non-frontend DTC to handle new API properly.

We now support disconnecting the syncableservice from the syncer via
it's sync change processor. AutofillProfile has been modified to support
this. As a result of the refactor and this disconnect functionality, we don't
need to block sync shutdown on datatypes implemented the new API, even
if they don't run on the UI thread.

From here on, datatypes that are not on the UI thread should have their
controller inherit from NewNonFrontendDataTypeController, and should
have their syncable service take ownership of the sync change processor it
receives.

A remaining TODO is to apply these changes to UI thread based datatypes.
This involves having them all take ownership of their sync change processors
(this change has their datatype controllers take ownership instead)
and creating a new parent datatype controller class that is API aware,
allowing us to remove the SyncableServiceAdapater completely. See
crbug.com/100114.

BUG=96889
TEST=unit_tests, integration tests

Review URL: http://codereview.chromium.org/8065016

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@105404 0039d316-1c4b-4281-b951-d872f2087c98
46 files changed