[Sync] Reland Componentize ProfileSyncComponentsFactoryImpl

Componentize ProfileSyncComponentsFactoryImpl into browser_sync component.
As part of this, pull out RegisterDesktopDatatypes method into ChromeSyncClient
and pass it into the ProfileSyncComponentsFactoryImpl at construction time.
Similarly, a RegisterAndroidDataTypes method is passed in instead for Android
platforms.

Because profile_sync_components_factory_impl_unittest.cc was really duplicating
and testing the logic from ProfileSyncServiceFactory, went ahead and moved the
test cases over into profile_sync_service_factory_unittest.cc.

BUG=512768

Original CL: https://codereview.chromium.org/1421003007/
[email protected],

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

Cr-Commit-Position: refs/heads/master@{#360269}
29 files changed