Modify StupidPool usage

* Change StupidPool to use a concurrent queue
* Modify OffheapBufferPool to pull from an expanding memory mapped file
Creating semantics around an inheritance relationship that requires implementations to reach in and adjust state is generally something that should be avoided.  It took me a while to realize where `objects` was coming from looking at `StupidPool.java`.

TBH, it really feels like you are trying to abstract and separate out something that belongs together as a single unit.