Control invalidations network channel from TiclInvalidationService 

This change introduces boilerplate GCMNetworkChannel implementation and switches 
sync/notifier classes to refer network channel through base class 
SyncNetworkChannel.

TiclInvalidationService can initialize invalidator with either PushClient or 
GCM channel. On one hand goal was to not expose network channel implementation to 
TiclInvalidationService, on the other hand to avoid passing channel specific 
parameters across sync/notifier classes during initialization.

The solution is to introduce NetworkChannelCreator callback that takes no 
parameters and returns scoped_ptr to SyncNetworkChannel. There are helper 
functions in SyncNetworkChannel to create implementations for Puch/GCM clients 
and helper functions in NonBlockingInvalidator to createNetworkChannelCreator. 

The alternative was to create NetworkChannel factory interface and write 
implementations of it for each channel type. This would provide more expressive 
names, but requires interface and two implementations for simple purpose.

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@242991 0039d316-1c4b-4281-b951-d872f2087c98
Switch MockRenderProcessHost to only fire observers rather than use notifications.

BUG=170921
TEST=no change

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

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