[#670] Intermittent IllegalStateException with ByteToMessageDecoder impl with bounded inbound buffer

* Ensure to call discardReadBytes() before giving up expanding the buffer
[#670] Intermittent IllegalStateException with ByteToMessageDecoder impl with bounded inbound buffer

* AioSocketChannel.expandReadBuffer() should not call discardReadBytes()
becuase it messes up with NIO.2
Upgrade to apiviz 1.3.2.GA. See #676
Change ChannelInboundMessageHandlerAdapter.beginMessageReceived(..) to return a boolean that will be used to check if data should be processed. See #674
[#662] Fix race in AioEventLoopGroup

- Ensure the event loop threads are never terminated before all tasks
  submitted by JDK are executed
- Close all open connections before terminating an event loop
[#662] Fix race in AioEventLoopGroup

- Fix a bug where shutdown() blocks indefinitely sometimes
Check if message is supported before cast. See #678
[#679] Netty 3.5.8 breaks app on startup with NPE

- Get system property when requested; do not cache it.

Conflicts:
	common/src/main/java/io/netty/util/internal/SystemPropertyUtil.java
NioUnsafe.ch() should return SelectableChannel
[#681] Allow a user to access the Selector of an EventLoop

- Make NioEventLoop public so that a user can downcast it
- Add NioEventLoop.register()
- Add NioTask to let user specify what to do on select()
Remove unnecessarily split line
Issue #65: Provide distribution stats for HashedWheelTimer
First cut at implementing a generic abstraction layer for pluggable
metrics providers. This first cut is closely modeled after Yammer
Metrics. It remains to be seen if it is indeed flexibel enough to
support other providers.
Provide a default implementation of this new abstraction layer
based on Yammer Metrics.
Support pluggable Monitoring Providers using Java 6's ServiceLoader.
Use this new abstraction layer to provide stats on (a) number of
Timeouts executed per second and (b) distribution of absolute
deviation between scheduled and actual Timeout execution time in
HashedWheelTimer.
 * Interface ValueDistributionMonitor, a monitor for histograms.
 * Interface EventRateMonitor, a monitor for measuring the rate per time
   unit of specific events.
 * Interface ValueMonitor, a monitor for tracking an arbitrary datum's
   current value
 * Interface CounterMonitor, a monitor for incrementing/decrementing a
   long value
 * Interface MonitorRegistry, a registry for monitors that serves as the
   interface between Netty and concrete metrics providers as e.g. Yammer
   Metrics.
 * Interface MonitorRegistryFactory, to be implemented by metrics
   providers.
 * Document how to use Netty's new monitoring support in javadocs for
   package io.netty.monitor.
Merge pull request #682 from obergner/issue_65

Add SPI to monitor netty. Also add stats for HashedWheelTimer to show how it can be used. See #65
Javadoc fixes
[#275 & #686] Ability to pass a custom parameter to Bootstrap.connect() / Replace Bootstrap.newBootstrap() with duplicate()

- Add Bootstrap.attr() and ServerBootstrap.attr()/childAttr() so that a
  user can initialize the attribute map from the beginning.
- Replace newBootstrap() with duplicate()
Correct test
Fix typos
Skip Multicast test for OIO as it seems to fail because of a JDK bug on OSX
Disable test for now, as it behave different on different os. Will fix it after the alpha release
disable test for now