Remove Connection parameter from buildRequest

As pointed out in afcowie/http-streams#9, buildRequest would be better
not needin a Connection object, thereby allowing it to be constructed
before setting up the connection to the server.

Make the qHost field a Maybe, and make the call to composeRequestBytes
take a ByteString parameter for the hostname with the value from the
Request, if set and from the Connection otherwise.

Move getHostname to Network.Http.Connection to add Connection
parameter to it.
Bump API version to 0.4.0
Update documentation

Update haddock comments with new buildRequest signature.
Fix buildRequest calls in test code
Merge branch 'pure-request-builder'