Allow port numbers passed to .bind() and .connect() to be strings

My team is doing some IPC stuff where we spawn child processes with arguments telling them what port to connect on. If the port number given to .bind() or .connect() is a string like "3000", you get ECONNREFUSED when url.parse() tries to run over "3000".

Simple patch attached to see if the port is a number before trying to parse out a hostname and port from it. Test case added as well.

Thanks for the work you do!