Use the `Location` `href` instead of the object as the random seed.

It should have been that way from the start, but specifically, in IE
the `Location` object doesn't survive `jQuery.extend` in a form that
can have `toString` called on it.
Only check for socket.io WebSockets when socket.io is available.

Tests don't load socket.io, for example.