Attempt to fix Invalidations client name crash

The first attempt at setting consistent invalidator IDs, r234524, has
turned out to be a failure.  It was based on the assumption that the
InvalidationController was the only object that would start the
InvalidationService.  That assumption was wrong.

This CL takes a new approach.  Rather than having the
InvalidationController manage the ID and send it to the
InvalidationService, we now managed it in the
InvalidationClientNameProvider class, which is avialable to both the
InvalidationController and InvalidationService.  This allows both
classes to synchronously request a client name as they need it.

The InvalidationClientNameProvider is, by default, backed by an
InvalidationClientNameGenerator that provides it with fully random IDs.
This is not ideal, but it's better than the other alternatives.

Once this change is fully implemented, the downstream code will invoke
UniqueIdInvalidationClientNameGenerator.doInitializeAndInstallGenerator()
during early init.  This will initialize a
UniqueIdInvalidationClientNameGenerator with a
UuuidBasedUniqueIdentificationGenerator that will provide a consistent
identifier across restarts, and inject this
InvalidationClientNameGenerator into the InvalidationClientNameProvider.

BUG=320873

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@236681 0039d316-1c4b-4281-b951-d872f2087c98
SVN changes up to revision 236681
Fixed typo in histograms.xml

BUG=321733
NOTRY=true

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@236682 0039d316-1c4b-4281-b951-d872f2087c98
SVN changes up to revision 236682