[GCM] Add connection factory for creating MCS connections

The connection factory abstracts all net interactions and enforces backoff
policy. Once it creates a connection handler, Connect calls can be made
whenever a reconnection is necessary/ready.

The connection handler is also abstracted into an interface/impl for easier
use in testing (fake connection factory/handlers will be introduced when
testing the main logic of the client).

BUG=284553
R=akalin@chromium.org

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

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