Abstract base class for pooling TargetSource
implementations which maintain a pool of target instances, acquiring and
releasing a target object from the pool for each method invocation.
This abstract base class is independent of concrete pooling technology;
see the subclass CommonsPool2TargetSource for a concrete example.
Subclasses must also implement some of the monitoring methods from the
PoolingConfig interface. The getPoolingConfigMixin() method
makes these stats available on proxied objects through an IntroductionAdvisor.