WebSocketClient: always use Error objects on error

when connectFailed is emitted via failHandshake() a string is emitted
if connectFailed is emitted via handleRequestError, and thus via
http.ClientRequest an Error object is used.

This patch attempts to streamline the use of Error objects.
Merge pull request #86 from timkuijsten/error-objects

WebSocketClient: always use Error objects on error
Added support for the rejectUnauthorized tls option
Merge pull request #87 from robrighter/add-add-tls-option-rejectUnauthorized

Added support for the rejectUnauthorized tls option for websocket client
Fixing minor bug where frames were still processed after dropping the connection, even if we received an unsupported RSV flag in a WebSocket frame.
Removing some unnecessary operations in the drop handler.