[GCM] Implement GCMProfileService with threading support.

1) Implement most methods of GCMProfileService with right threading support.
2) Define GCMEventRouter interface for event routing purpose.
3) Add a mock version of GCMClient for testing purpose.

BUG=284553
TEST=new tests added
R=fgorski@chromium.org, zea@chromium.org

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

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