[GCM] Stop/restart GCM when the state is forced off/on

BUG=348642
TEST=new tests added
R=dimich@chromium.org, fgorski@chromium.org, tim@chromium.org

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

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