Port SslHandler to the new API. Everything except of starttls works
Fix example
Fix starttls support. Now SslHandler should be fully functional again
Only parse packet length once per packet. See #382
Remove some more synchronization stuff which is not needed anymore
Fix compilation errors (#384)

- ECJ worked fine with the old code, but the official compiler does not
Port SSL echo test

- Remove britspaces
Fix a test failure in LocalChannelRegistryTest
Fix a build failure due to a dependency problem / Fix checkstyle errors
Fix more checkstyle errors
Overhaul - Split ChannelHandler & Merge ChannelHandlerContext

- Extracted some handler methods from ChannelInboundHandler into
  ChannelStateHandler
- Extracted some handler methods from ChannelOutboundHandler into
  ChannelOperationHandler
- Moved exceptionCaught and userEventTriggered are now in
  ChannelHandler
  
- Channel(Inbound|Outbound)HandlerContext is merged into
  ChannelHandlerContext
- ChannelHandlerContext adds direct access methods for inboud and
  outbound buffers
  - The use of ChannelBufferHolder is minimal now.
    - Before: inbound().byteBuffer()
    - After: inboundByteBuffer()
    - Simpler and better performance
    
- Bypass buffer types were removed because it just does not work at all
  with the thread model.
  - All handlers that uses a bypass buffer are broken.  Will fix soon.

- CombinedHandlerAdapter does not make sense anymore either because
  there are four handler interfaces to consider and often the two
  handlers will implement the same handler interface such as
  ChannelStateHandler.  Thinking of better ways to provide this feature
Post-overhaul fixes / Split LoggingHandler into three

- LoggingHandler now only logs state and operations
- StreamLoggingHandler and MessageLoggingHandler log the buffer content
- Added ChannelOperationHandlerAdapter
  - Used by WriteTimeoutHandler
Fix a NPE in DefaultChannelPipeline.write(...)

- Also re-enabled logging handler in the echo example
Fixed a bug where ChannelInitializer can trigger the same event twice
Remove Channel(Inbound|Outbound)HandlerAdapter which does nothing

- Thanks to the recent refactoring, Channel(Inbound|Outbound)Handler-
  Adapter ended up having empty body.  No need to keep.
Add back Channel(Inbound|Outbound)(Message|Stream)HandlerAdapter

- they are useful when creating an anonymous class
- Also added back CombinedChannelHandler with extra constraints
Replace codec embedder with EmbeddedChannel which can test any handlers

- Added EventExecutor.inEventLoop(Thread) and replaced executor identity
  comparison in DefaultChannelPipeline with it - more elegant IMO
- Removed the test classes that needs rewrite or is of no use
Ported all tests in netty-codec to the new embedder
Port HttpContentEncoder/Decoder to use EmbeddedStreamChannel / Cleanup

- Removed unused constructor parameter in AbstractChannel
- Re-enabled GZIP encoding in HTTP snoop example
Fixed SpdySessionHandlerTest / Fixed NPE in EmbeddedChannel

- Some tests like SpdySessionHandlerTest accesses outbound buffer
  even before the outbound buffer is initialized by
  AbstractEmbeddedChannel's subclasses, leading to NPE at <init>.
  To fix this problem, subclasses now pass the outbound buffer as
  a constructor parameter to AbstractEmbeddedChannel.