Suppress channelReadComplete until MessageAggregation completes

Fixes https://github.com/netty/netty/issues/3168.

Motivation:
This fixes issue 3168 where HttpObjectAggregator does not suppress
channelReadComplete() when aggregation is not yet finished.

Modifications:
Ignore channelReadComplete until a message completes aggregation.
MessageAggregator currently tracks the currentMessage being aggregated.
This variable transitions to non-null when aggregation begins and back
to null when aggregation completes or fails. When the currentMessage is
null, it is safe to issue a channelReadComplete because the
corresponding channelRead will have completed aggregation.

Result:
channelReadComplete will only fire one time on each completed message
aggregation.
You should check the return value of the writeInbound(...) call and also use channel.finish() + channel.readInbound() later to see that you receive what you expected. Also this is needed to ensure everything is released as otherwise this test will produce a buffer leak.