Fix test failure in testsuite-osgi-deps

This commit fixes both failure of test itself and failure of compiling
and running test.

- When the test was run via 'mvn test', Maven gives karaf-maven-plugin a
  list of class directories instead of OSGi bundles, so that
  karaf-maven-plugin generates incorrect feature.xml.  I added a
  workaround for this specific case to DependencyIT
- When the packaging of project is 'feature', maven-compiler-plugin is
  not run at all.  Added a <plugin/> section so that it's always
  compiled.
Rename Unsafe.directOutboundContext to headContext
Allow to disable only heap or direct buffer pool

- Fixes #1315

If a user specifies the arena size of 0, the pool is now disabled
instead of raising an IllegalArgumentException. Using this, you can
disable only heap or direct buffer pool easily. Once disabled,
PooledByteBufAllocator will delegate the allocation request to
UnpooledByteBufAllocator.
Fix a bug where HttpContentEncoder generates an empty chunk even if it's not the last chunk

- Fixes #1312
- Added more test cases to ensure the fix
update to barchart-udt 2.2.6
* which fix https://github.com/barchart/barchart-udt/issues/48
Simplify a bit
Use tryFailure() to notify registration failure to avoid IllegalStateException

 .. which is raised when the registration promise has been failed already due to an internal error in the pipeline.

- Fixes #1319
[#1321] HttpHeaders.removeTransferEncodingChunked(..) must handle the value in case insensitive manner
Fix type in class name
Fix checkstyle
Fix checkstyle
Introduce EventExecutor.shutdownGracefully() that deprecates shutdown()

shutdownGracefully() provides two optional parameters that give more
control over when an executor has to be shut down.

- Related issue: #1307
- Add shutdownGracefully(..) and isShuttingDown()
- Deprecate shutdown() / shutdownNow()
- Replace lastAccessTime with lastExecutionTime and update it after task
  execution for accurate quiet period check
  - runAllTasks() and runShutdownTasks() update it automatically.
  - Add updateLastExecutionTime() so that subclasses can update it
- Add a constructor parameter that tells not to add an unncessary wakeup
  task in execute() if addTask() wakes up the executor thread
  automatically.  Previously, execute() always called wakeup() after
  addTask(), which often caused an extra dummy task in the task queue.
- Use shutdownGracefully() wherever possible / Deprecation javadoc
- Reduce the running time of SingleThreadEventLoopTest from 40s to 15s
  using custom graceful shutdown parameters

- Other changes made along with this commit:
  - takeTask() does not throw InterruptedException anymore.
    - Returns null on interruption or wakeup
  - Make sure runShutdownTasks() return true even if an exception was
    raised while running the shutdown tasks
  - Remove unnecessary isShutdown() checks
  - Consistent use of SingleThreadEventExecutor.nanoTime()

Replace isWakeupOverridden with a constructor parameter
Fix a bug where the unpooled buffer returned by the pooled allocator reports an incorrect allocator
Fix a bug where SingleThreadEventExecutor sets its internal state flag too early during termination
Introduce AddressedEnvelope message type for generic representation of an addressed message

- Fixes #1282 (not perfectly, but to the extent it's possible with the current API)
- Add AddressedEnvelope and DefaultAddressedEnvelope
- Make DatagramPacket extend DefaultAddressedEnvelope<ByteBuf, InetSocketAddress>
- Rename ByteBufHolder.data() to content() so that a message can implement both AddressedEnvelope and ByteBufHolder (DatagramPacket does) without introducing two getter methods for the content
- Datagram channel implementations now understand ByteBuf and ByteBufHolder as a message with unspecified remote address.
Ensure UnreleasableByteBuf does not expose the wrapped buffer to the caller

- Fixes #1324
Update OSGI Test Suite.
Fix style
Log with info level and not with warn
[#1327] Fix javadoc diagram for new api