Cater for empty responses when performing http content compression

We need to take into account an empty response when performing content compression. Per rfc 2616, 4.3 Message Body:
> All 1xx (informational), 204 (no content), and 304 (not modified) responses MUST NOT include a message-body.

We explicitly check for these responses and set the state to PASS_THROUGH. EmptyLastHttpContent should reset the state machine back to AWAITING_HEADERS.

This fix an issue in chrome that resulted in the browser hanging due to unexpected responses. See #3070 for context.
I'm not sure we need the `final` modifier here.