Expand travis to compile benchmarks
Benchmark hyper server against rust-http server.

Adds a benchmark for testing the speed of hyper's server.

Due to limitations of rust-http, `cargo bench` now needs to be
killed after running because there is no way to kill a rust-http
server after you start it.
Merge pull request #26 from reem/expand-travis

Expand travis to build docs and run benchmarks
Merge pull request #22 from reem/bench-server

Benchmark hyper server against rust-http server.
Fix server benchmark for Response representation changes.
Merge pull request #28 from reem/fix-server-bench

Fix server benchmark for Response representation changes.
Parse Transfer Encodings that we don't handle

We should not throw away information here, as downstream users
may want to handle alternative encodings.
Abstract out NetworkStream

This introduces a new Trait, NetworkStream, which abstracts over
the functionality provided by TcpStream so that it can be easily
mocked and extended in testing and hyper can be used for
other connection sources.
Merge pull request #30 from reem/dont-lose-transfer-encoding

Parse Transfer Encodings that we don't handle
Use trait objects and dynamic dispatch to abstract over NetworkStream

Server and client benchmarks show that this makes very little difference
in performance and using dynamic dispatch here is significantly more ergonomic.

This also bounds NetworkStream with Send to prevent incorrect implementations.

Allows the implementation of mock streams for testing and flexibility.

Fixes #5
Deny missing documentation and all warnings for cleaner builds.
Use dynamic dispatch for client Request and Response through Box<NetworkStream>

Also adds a convenience `abstract` method to NetworkStream for creating
Box<NetworkStream + Send> from a NetworkStream.
Update benchmarks and introduce more default type params for remaining generics

The client benchmarks did not have to be changed at all for this whole
refactor, and the server benchmark only had to specify a single type parameter,
and only because it writes out the type of Listener, which is not normal
usage.
Merge pull request #29 from reem/network-stream

Abstract over NetworkStream using dynamic dispatch
Rename rfc7230 to http to more clearly indicate its purpose.
Merge pull request #31 from reem/rename-rfc7230

Rename rfc7230 to http to more clearly indicate its purpose.
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.