Add port to Host header if port is not default.

I got burned by this a minute ago. According to the standard (http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html) the `Host` header should include the port number unless the request is using the protocol's default port. The previous behavior was to never include the port in the `Host` header. I have changed it to include the port unless `uri.port` is zero (in which case no port was provided, which will result in using the default port for HTTP or HTTPS).