feat(server): keep-alive! [WIP]

Internals have been shuffled around such that Request and Reponse are
now given only a mutable reference to the stream, instead of being
allowed to consume it. This allows the server to re-use the streams if
keep-alive is true.

A task pool is used, and the number of the threads can currently be
adjusted by a method on the Handler trait.

BREAKING CHANGE

@reem I see a big jump in reqs/sec with this. On my machine, around 55k. I can't get Iron to compile today (cargo bug) to compare, but it may be faster on your machine.
Yea, I considered it being `listen(handler, 100)` or something. I tried a method on handler for 2 reasons:

1. I was considering instead of just returning the number of threads, allowing this method to return a TaskPool (for some trait HyperTaskPool, to allow any implementation).
2. I wanted to have a default that wasn't just `0u`.