[Telemetry] Improvements to OS X powermetrics integration

* Make StartMonitoringPowerAsync() synchronous in terms of starting the powermetrics process by waiting for output file to be created before returning.
* Handle parse errors in powermetrics output - empirically while I was able to quite easily get powermetrics into a state where it exited in the middle of writing a sample, I was completely unable to get it not write out at least one sample completely.
* Modify unit test to start/stop powermetrics faster than it's refresh rate to try to trigger malformed output - test fails without rest of this patch, passes with this patch.

BUG=338808

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@247871 0039d316-1c4b-4281-b951-d872f2087c98
[GCM] Create and use event router in GCMProfileService

BUG=284553

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@247872 0039d316-1c4b-4281-b951-d872f2087c98
SVN changes up to revision 247872
Move a null check before it's usage.

This issue was found by a linter.

R=skuhne@chromium.org

BUG=

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

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