Add PushConnection interface (#11655)

* Add PushConnection interface and rename old class to
AtmospherePushConnection
* Define deferred binding to use AtmospherePushConnection by default
* Redesign connection and disconnection workflow to better cope with
situations where connection is quickly toggled

Change-Id: I9b9427c2df40d446a25895eb39e7b166cb929a85