General Pool implementation which supports; weak and strong pool size limits,
optional blocking gets when poolables are not available, and automatic pool
trimming of unused poolables.
Whether or not the pool should cause threads requesting a Poolable to block when m_maxStrict
is true, the pool size is equal to m_max and there are no Poolable instances available.