Use same reconnect logic for Push as for XHR (#17075)
* No longer queue message separately in PushConnection
* Use XHR for client to server communication when using long polling (or streaming)
* Websocket is used for communication in both directions
Note that using XHR for client to server responses at the same time
as a push connection is open means we must take into account on the
client side that we may receive message in the wrong order. This
will be addressed in the following change.
Change-Id: I97706db3481379593e71dc5bb552727a0486692b
* XhrConnection internally manages the URI to send to
* send(JsonObject) now only takes the payload
* retry logic for status 0 removed for now
Change-Id: Ieca25df0ebe06773139b2bec7e9a2586df77b24d