Request and output buffer which wrap Rack objects.

In order to use cgimap's processing pipeline within Rack, the
`request` and `output_buffer` interfaces have to be implemented
in order to retrieve values from the Rack environment and write
output.

In this case, we take over Rack's client socket completely, as
currently cgimap doesn't separate writing headers from writing
the rest of the result, so we have to take over the whole thing.