Generic, thread-safe, unbounded RingBuffer