This is essentially a three state state machine, it is either 'idle' - waiting for a response to come in
or has seen the start of a response and is waiting for either chunks followed by MessageEnd if chunked
or just MessageEnd in the case of a strict response.
For chunked responses a new substream into the response entity is opened and data is streamed there instead
of downstream until end of chunks has been reached.