Uninstall multi-install Chrome Frame when updated.

If multi-install Chrome Frame is present when a multi-install install or
update is processed, CF is uninstalled prior to ordinary processing. The
binaries will be removed if they are not in use. Otherwise, they will
stick around until the next update for which they are not in use.

BUG=316496
R=robertshield@chromium.org

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@238588 0039d316-1c4b-4281-b951-d872f2087c98
SVN changes up to revision 238588
Fix race / DCHECK in MetricsService. 

Without this CL, there's a race where the init task races against the "final log
collection" step for the first UMA log. If the "final log collection" step would
win, a DCHECK would be hit and I think the initial log would not be be sent up. 

This fixes the race by handling that case in the MetricsReportingScheduler.
Also adds a histogram to track how many times this happens as well as some
unit tests for MetricsReportingScheduler.

Also, re-enables MetricsService recording/reporting under debug builds.

BUG=156979
TEST=New unit tests.

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

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