A lot of renaming

- HttpMessage -> HttpMessageWithEntity
- HttpHeader -> HttpMessage
- HttpRequest -> HttpRequestWithEntity
- HttpResponse -> HttpResponseWithEntity
- HttpRequestHeader -> HttpRequest
- HttpResponseHeader -> HttpResponse
WithEntity -> WithContent
Make HttpHeaders an abstract class and add DefaultHttpHeaders / Move all header access methods to HttpHeaders / HttpMessage/LastHttpContent now has a property called 'headers' or 'trailingHeaders'
Remove setters and remove 'get' from getters

Instead of calling setContent(), a user can either specify the content when constructing a message or write content into the buffer (e.g. m.content().writeBytes(...))

Also removed unused abstract HttpMessageWithContent.
Better state management for HTTP encoder / Fix RTSP
Fix checkstyle errors & inspector warnings
Fix compilation errors
Fix checkstyle
Fix more checkstyle
Cleanup / Fix HttpSnoopServer example
Fix the WebSocketClient example
Ignore zero-length content
Make HttpContent extend Freeable / Initial capacity of content is 0
Rename *WithContent to Full*
Make HttpContent extend ByteBufHolder / AbstractByteBuf.toString() improvements / HttpContent.toString() fixes
Rename the accessor methods of HttpObject for consistency