[GCM] Hooking up unregistration

* Implemetning GCMClientImpl.Unregister, added UnregisterCompleted
* Added OnUnregisterFinished to GCMClient::Delegate - the status is passed as a bool, because we ignore it anyway, and it is simply a hook for testing. Functionality is triggered in response to downstream message and not user's interaction.
* Added a test that consumes the delegate hook.
* I considered removing messages related to APP ID, but decided not to add that functionality to GCM Store, as those messages would be sent to MCS before we realize that the app is uninstalled, and there is no point in writing code that would never really do much.

BUG=284553

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

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