Statically track the status of a Response by using a Phantom Type

Introduces two Phantom Types, Fresh and Streaming, which indicate the status
of a Response.

Response::start translates an Response<Fresh> into a
Response<Streaming> by writing the StatusCode and Headers.

Response<Fresh> allows modification of Headers and StatusCode, but does
not allow writing to the body. Response<Streaming> has the opposite privileges.
Updated examples and benchmarks for new Response representation.
Added example of a concurrent server

Simple example that demonstrates how to create a concurrent
server on top of the primitives exposed by hyper.
Merge pull request #23 from reem/concurrent-example

Added example of a concurrent server
Merge pull request #19 from reem/static-response-states

Statically track the status of a Response by using a Phantom Type
Fix concurrent server example for new Response representation.
Merge pull request #24 from reem/fix-concurrent-server

Fix concurrent server example for new Response representation.