Using the SocketRocket example app as a guide for disconnection of the socket.

I believe this works around the issue described here: https://github.com/square/SocketRocket/issues/62

My testing seems to confirm that, but on the other hand, it's mighty hard to test. Either way, since the transports are not reused, it doesn't matter and we can effectively begin teardown as soon as the disconnection occurs.
Remove debugging log statement.
Update the pod spec.
Remove some over eager reconnect behavior.
Add message buffering during reconnects.
parse json on a background thread