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.
@naude-r - No problem.  You don't have to submit another PR.  In-fact it would be preferred to stick with this PR and just make more commits.