Change Server to contain a Vec of (ip, port) pairs to allow repeat listening

Expose Server::many for creating a Server that will listen on many (ip, port)
pairs.

Handler still receives a simple Iterator of (Request, Response) pairs.

This is a breaking change since it changes the representation of Listener,
but Handler and Server::http are unchanged in their API.

Fixes #7
Update client benchmarks for new Listening representation.
Split Server::listen into two methods to hack around ICE related to default type params

Trying to default the type parameters leads to an ICE and strange type errors.
I think this is just due to the experimental state of default type params and
this change can be rolled back when they are fixed.
Merge pull request #25 from reem/server-bind-multiple-addresses

Change Server to contain a Vec of (ip, port) pairs to allow repeat
Update the client API to statically track headers and move constructors

The client Request now uses the same system as a server Response to track
the write status of headers, and the API has been updated accordingly.

Additionally, the Request constructors have been moved onto the Request object
instead of being top-level hyper functions, as this better namespaces the
client and Server.
Moved WriteStatus, Fresh, and Streaming in to the net module.