tests call WebSocket constructor with String/Array protocols argument

This breaks tests, but they will be fixed by the next commit.
Add handling of protocols in initAsClient function

The Sec-WebSocket-Protocol are not included in header.
So far it is possible to override this functionality calling new WebSocket("ws://URL",{protocol:"USER DEFINED PROTOCOL"})

(cherry picked from commit c08b70feca5cb2745306b1f6e165490875117c15)

resolves #323
resolves #290
resolves #298
lib/WebSocket.js: remove TODO about subprotocols

This was added in 887ebcb (#227), but has since been done.
Merge pull request #415 from joseph-onsip/clientprotocols

Follow W3C spec for constructor's `protocols` argument