public class SynchronizedStack<T>
This is intended as a (mostly) GC-free alternative to
ConcurrentLinkedQueue when the requirement is to
create a pool of re-usable objects with no requirement to shrink the pool.
The aim is to provide the bare minimum of required functionality as quickly
as possible with minimum garbage.