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.
If we do use a Clone bound, then there is no reason handle can't take &mut self, but from experience in Iron I can say that Send + Sync is a much clearer, more performant bound.