This reverts commit 2b6e6e4.
Separates the reader/writer from the main connection object. Terminating writes with `$w->write(undef)` no longer works. Fix up a bunch of amateur XS mistakes in the process.
Streamed responses are forced to use "Transfer-Encoding: chunked" for now since this seems correct-er than "Connection: close". Plus, a number of refactorings: clean up warn/trace send_response() moved to the .pm, split into start_response() & write_whole_body() only refcount-dec the client when in RESPOND_SHUTDOWN mode (i.e. the terminating write) reduced the amount of copying of utf8 scalars.