Changed delegate method didCloseWithCode:reason: to didCloseWithError:

This allows WebSocket to pass through NSErrors reported from the
GCDAsyncSocket. It maps SSL errors to the more common NSURLError codes.
Improved SSL support

* WebSocketClient now actually uses the _tlsSettings dict set by the
  inherited -useTLS: method (oops)
* Added delegate method -webSocket:didSecureWithTrust:atURL: to let
  delegate do custom verification of the certificate chain.