WebSocketClient: always use Error objects on error
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.

explodingbarrel/WebSocket-Node,theturtle32/WebSocket-Node,Massivesoft/WebSocket-NodeJS,wangwei1237/WebSocket-Node,Iam-samara/WebSocket-Node,Massivesoft/WebSocket-NodeJS,wangwei1237/WebSocket-Node,theturtle32/WebSocket-Node,wangwei1237/WebSocket-Node,explodingbarrel/WebSocket-Node,thdtjsdn/WebSocket-Node,TechnophobiaClinic/WebSocket-Node,Massivesoft/WebSocket-NodeJS,mkzh/WebSocket-Node,tuguangquan/WebSocket-Node,wangwei1237/WebSocket-Node,thdtjsdn/WebSocket-Node,tuguangquan/WebSocket-Node,Iam-samara/WebSocket-Node,tuguangquan/WebSocket-Node,Iam-samara/WebSocket-Node,theturtle32/WebSocket-Node,tuguangquan/WebSocket-Node,mkzh/WebSocket-Node,dpocock/WebSocket-Node,Iam-samara/WebSocket-Node,theturtle32/WebSocket-Node,Massivesoft/WebSocket-NodeJS,TechnophobiaClinic/WebSocket-Node,TechnophobiaClinic/WebSocket-Node,dpocock/WebSocket-Node,mkzh/WebSocket-Node,mkzh/WebSocket-Node,thdtjsdn/WebSocket-Node,explodingbarrel/WebSocket-Node,dpocock/WebSocket-Node,TechnophobiaClinic/WebSocket-Node,explodingbarrel/WebSocket-Node,thdtjsdn/WebSocket-Node,dpocock/WebSocket-Node,theturtle32/WebSocket-Node