#232 Adds generic object pooling based on reference counting.

This implementation of object pooling is based on PR #257. It is thread-safe, uses a BitSet for performance and an internal List. In the Netty implementation of Recycler, the object pools are ThreadLocal and an array and counting is managed via ++ and --. This implementation differs from the Netty version in that the object pool can be shared across threads and reference counting is done. When the reference count for an allocated object reaches 0 it is recycled.
#232 Integrated Allocator into the Dispatchers.

This is a very pervasive changeset as it touches nearly every part of the internal workings of all the Dispatchers. Since the inclusion of a more powerful Allocator abstraction in recent commits, it seemed to make sense to re-write the Dispatchers to make use of this to provide some consistent efficiencies. There's still some work to do and bugs to fix so this shouldn't be considered a complete commit. But it's necessary for others working on this branch to have the latest changes.
#232 Fixes for allocator and dispatcher implementations built on top.

It appears reference counting was doing some funky things and getting counts off. Also moved some execution code around a little to make it more efficient for doing tail recursive calls from the task queue. Also tried to consolidate as much of the Dispatcher code as possible into single, reusable chunks and only subclass and override the bare minimum required to get the functionality desired.
Formatting tweaks.
Tweak to fix failing test.
#232 Added FactoryAllocator for amortizing the cost of object creation by doing batch creations of objects and then doling those out one at a time until exhausted, at which point the pool is refilled, blocking the calling thread.
#232 Tweaking object allocation. Renamed FactoryAllocator to BatchFactorySupplier since it doesn't implement the Allocator interface. Left it in the alloc package since it has to do functionally with allocation.
Raise the backlog value for the EventLoopDispatcher throughput test. Turns out it doesn't really make that much difference.
Remove the ReentrantLock and use a simplified synchronized block for updating the BitSet.
Be more specific on the maximum throughput verbiage.
Tweak throughput tests.
Update javadoc.
Merge pull request #267 from reactor/enhancement-232-allocator-recycler

Fixes #232 by providing a flexible Allocator API for doing object pooling.