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.
On second thought, I'm actually not sure. It's harder to emulate the Clone behavior with a Sync bound. If we keep the Clone bound though we should let handle take &mut self.