Emit a `socket.close` event when closing the socket.
Add reconnection/resubscription.  Closes #21.

This adds a reconnection handler to the socket that will reauthenticate
with the ESB and resubscribe to the previously-subscribed channels
whenever the TCP socket dies.