Refactor LzfDecoder to use proper state machine

Motivation:

Make it much more readable code.

Modifications:

- Added states of decompression.
- Refactored decode(...) method to use this states.

Result:

Much more readable decoder which looks like other compression decoders.

@trustin writes about it: https://github.com/netty/netty/pull/2755#issuecomment-51855712 and https://github.com/netty/netty/pull/2739#issuecomment-52146230
Why not call in.readSlice(...).retain() ?