[Sync] Avoid unregistering object IDs on shutdown

Add RegisterHandler() and UnregisterHandler(), which should be called before and after calls to UpdateRegisteredIds().  Use UnregisterHandler() on
shutdown instead of UpdateRegisteredIds(_, ObjectIdSet()).

Make SyncNotifierHelper non-thread-safe.  Fix test breakages that this revealed.  Also add GetAllRegisteredIds() instead of making it the return value of UpdateRegisteredIds().

Propagate UpdateRegisteredIds()/RegisterHandler()/UnregisterHandler() all
the way up to ProfileSyncService.

Make FakeSyncManager be created on the sync thread.

Clean up SyncBackendHost startup/shutdown behavior a bit.

BUG=140325

Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=150990

Review URL: https://chromiumcodereview.appspot.com/10824161

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