Fixes for tests on Windows

I was going to try and update the sub-protocol handling 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). **EDIT: Ignore this. That problem was already solved. I just ran the tests weird.**

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. **EDIT: Changed to port 50003 because 1 still throws errors on Travis.**

PS: Also increased the per-test time in the Makefile to 5 seconds because Travis was taking too long and sometimes failing with 2.