Fixes for tests on Windows

I was going to try and update the sub-protocol handing but ran into some problems with the tests.

The first was that apparently some of the tests connect using HTTPS to a test server that uses a self-signed certificate. I'm not sure why other people haven't reported the problem, but I fixed it with some help from [stackexchange](http://stackoverflow.com/questions/10888610/ignore-invalid-self-signed-ssl-certificate-in-node-js-with-https-request).

The second problem was an issue with a test that involved opening a unix socket file. Obviously, this won't work on windows, so I just disabled the test when running on windows. If someone knows of a better way to handle this, I'm open to suggestions.

The last one was a test that I don't completely understand.
The test requires that a server fail to bind to port 1. I'm assuming this correctly throws an error on Linux since it's normally tested as a non-root user, and non-root is not allowed to bind to ports below 1024. In Windows, or running as root on Linux, this test fails because the bind succeeds. To prevent this, I added another bind to take possession of port 1 before attempting to bind to it, resulting in a EADDRINUSE error.