Modify StupidPool usage

* Change StupidPool to use a concurrent queue
* Modify OffheapBufferPool to pull from an expanding memory mapped file
Fwiw, this is not equivalent to the old code.  The old code updated `closed` inside of a `synchronized` block which ensures cache coherence on multi-core machines.  This code does not do that and opens the door to the same object being added to the pool multiple times.