connection-read-handler: use a single pipe, fix edge cases

Save sate. Passing tests and working for me with SPDY. Needs more
testing to prove itself, and some refactoring/cleanup.