WebSocket: allow "options" to be the 3rd argument

Currently the 2nd argument (`protocols`) is ignored.

Eventually the "selected" protocol should be set as `socket.protocol`,
depending on that the WebSocket server responds with support for, but
that's for another commit...

Part of #227.
test: convert tabs to 2 spaces in WebSocket client test
WebSocket: remove unused `self` variable
WebSocket: use `Array.isArray()`

A little bit cleaner code this way.
WebSocket: fix whitespace
WebSocket: avoid defining the `self` variable twice
WebSocket: fix the options being initialized

The tests pass once again now.
WebSockets: don't treat an Array like the "options" object
test: add test case for "options" as the 3rd argument
Merge pull request #232 from TooTallNate/add/options-third-arg

Allow the "options" object to be passed in as the 3rd argument.