Added a configurable RingBuffer WaitStrategy implementation that uses LockSupport.parkNanos() instead of Thread.yield()
Changes to PartitionedReferencePile to reduce object creation by letting objects hang around and leaving the responsibility of zeroing-out pooled objects to user code. It's not required by the generics but it would be best to use a Recyclable as the pile object and call .recycle() on each object within the for-each that consumes the objects queued in the pile.