Reapply r80049 with clang fixes.

[Sync] Refactor controllers for datatypes that live on ui thread.

In addition, changes have been made to the datatype controller interface in preparation of future refactoring. Enabled(), which is not used, has been removed. Immutable functions have been declared const. name() is now derived from the ModelTypeToString method.

Refactor of non-frontend datatypes will be coming in a later patch.

Original review at: http://codereview.chromium.org/6777014/

[email protected]
BUG=76232
TEST=anything sync related

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

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