Rewrite ping/pong logic to be client side

  - Add debug support by adding ?ReconnectingWebSocketDebugAll=1
  - Change ping interval to start on object create time
  - Catch all ws.send() errors.
  - Will not connect to ws until first ws.send()
  - Log when readyState change
  - Create ReconnectingWebSocket with an object instead of just url
  - Add event logging
  - Fix getNewMessages() on reconnect