Reland: Add GCMChannelStatusSyncer to schedule requests and enable/disable GCM

BUG=384041
TEST=new tests added

Committed: https://crrev.com/3c23f4a188e171998f3042ad62f4aa5717e66d63
Cr-Commit-Position: refs/heads/master@{#295524}

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

Cr-Commit-Position: refs/heads/master@{#295645}
16 files changed