[GCM] Reset socket state on disconnect

Adds Reset() method to ConnectionHandler so that external connection events
can interrupt any in-progress socket interaction. Without this, it's possible
for the socket to be destroyed and the handler (and its stream objects) to
retain a pointer to the now-invalid Socket object.

BUG=342438

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

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