Properly deserialize push connection (#12235)

The UI.pushConnection field is transient no longer; instead PushConnection
implementations must take care of serialization internally. When a session
is serialized, the client should notice that push was disconnected and
try to reconnect. A deserialized PushConnection should be in a "disconnected"
state so the eventual client reconnection works correctly.

Change-Id: I38cfc5a5cdbd3643311f830f8d580458dcd85c56