Abstract object pooling implementation.
Existing matcher implementation now uses object pooling. Pattern classes are now poolable.