Hide protocol detail from users
readableBytes() ==0 -> !isReadable()
Also record retain() and release()
Checkstyle
Add ReferenceCountUtil.releaseLater() to make writing tests easy with ReferenceCounteds
Fix false-positive leaks

- All derived buffers and swapped buffers of a leak-aware buffer must be wrapped again with the leak-aware buffer
Add missing synchronization
Merge remote-tracking branch: upstream/master