The change in d0eb3f65 moved responsibility to the request itself, but
kept ownership of the parser struct with the request queue. In
retrospect, it is cleaner to keep protocol parsing in the queue and have
it pass the parsed protocol via the read callback.
Every request is now kept in a maximum of two queues. When a request is
initially inserted, it is inserted in the `to_write` queue. When at
least one write buffer is extracted from that request, it is *moved* to
the `wait_write` queue. When at least one byte of the request has been
written to the socket, it is *also* placed in the `wait_read` queue.
This means that it is possible for a request to be emitting write
buffers, while simultaneously receiving read callbacks.