feat(server): keep-alive!

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 the `listen_threads(handler, num_threads)` method on Server.

[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.