Fix a bug where ChannelFuture.setFailure(null) doesn't fail

Motivation:

We forgot to do a null check on the cause parameter of
ChannelFuture.setFailure(cause)

Modifications:

Add a null check

Result:

Fixed issue: #2728
Consider writerIndex when LzfDecoder writes into a new heap buffer

Motivation:

Now LzfDecoder do not consider writerIndex when it writes into array of a new heap buffer (when it decodes a compressed chuck of data)
Make channelRead final in SimpleChannelInboundHandler.

Motivation:

Users might override channelRead by accident.
See http://stackoverflow.com/questions/25110538/netty-ping-pong-with-a-pojo

Modifications:

Make channelRead final.

Result:

Can't override channelRead.