Make use of gathering writes if a MessageList which only contains ByteBuf msgs is written to a NioSocketChannel
[#1410] Make sure we generate a Http response if the server writes back 200 response with empty body and and close the connection
Add very simple httpserver example which just respond with Hello World
Clearify when you need to call retain()
Generate less garbage when performing gathering writes
Make sure that HttpObjectDecoder decodes the last HTTP message without 'Content-Length' header

- Fixes #1410
- Revert 1e5f266a3c2eb592b55387b4ef187ed0dabbf019 and provide a proper fix with a test
Rewrite HTTP encoder to use gathering writes
Fix test failures introduced by 78d8f05c218cab107255c4dc1a1344aef138d379
Tiny optimization
Reduce even more garbage by exposing ByteBuf.internalNioBuffer()
Move ReferenceCounted and AbstractReferenceCounted to io.netty.util

- Fixes #1441
- Also move and rename IllegalBufferAccessException to ReferenceCountException
- Prettier reference count exception messages
Suppress duplicate warning message printed when a message reaches at the end of pipeline
Fix memory leaks
ReferenceCountException -> IllegalReferenceCountException
Prefer direct buffer by default

- Because it's faster in most cases thanks to unsafe
Log correct system property name
Simplify hello world content generation
Remove the volatile modifiers where they are unnecessary
Fix test failures and reported leaks
Fix reported leaks