Better buffer leak reporting

- Remove the reference to ResourceLeak from the buffer implementations
  and use wrappers instead:
  - SimpleLeakAwareByteBuf and AdvancedLeakAwareByteBuf
  - It is now allocator's responsibility to create a leak-aware buffer.
  - Added AbstractByteBufAllocator.toLeakAwareBuffer() for easier
    implementation
- Add WrappedByteBuf to reduce duplication between *LeakAwareByteBuf and
  UnreleasableByteBuf
- Raise the level of leak reports to ERROR - because it will break the
  app eventually
- Replace enabled/disabled property with the leak detection level
  - Only print stack trace when level is ADVANCED or above to avoid user
    confusion
- Add the 'leak' build profile, which enables highly detailed leak
  reporting during the build
- Remove ResourceLeakException which is unsed anymore
Allow specifying a custom charset for a multipart Attribute

- Fixed #2025
- Adapted from @BabyDuncan's pull request: #2031
- Overall ugliness clean-up
codec-memcache: increase default buffer size and only encode extras if set.
SockJS Protocol support for Netty 4.
Bumped version to 4.0.0.CR10-SNAPSHOT
Moving SockJSProtocolTest to protocol package
Removing log statement.
Updated to reflect recent changes in Netty API.
Updating to 4.0.4.Final-SNAPSHOT.
Releasing the discarded buffer and not simply ignoring them.
Adding instructions about how to run the sockjs-protocol tests.
Making sure that writeAndFlush is used and not simple write where
approriate.
Code clean up and document updates
Fixing the ignored jsonEncodingTestXhrServerDecodes test.
Docs and minor updates from PR feedback.
Making Frame extend ByteBufHolder and subclasses extend
DefaultByteBufHolder.
Making HtmlFileTransport extend ChannelDuplexHandler and use
ByteBufAllocator, and reduce writeAndFlush calls.
Reducing buffer copies and adding ThreadLocals for SimpleDateFormat and
MessageDigest.
Making JsonPollingTransport extends ChannelDuplexHandler and reducing
buffer copies.
Removing duplicate close.