Create facade classes for object pool and buffer pool.

Use common RetainPolicy enumeration.
RetainPolicy specifies policy for cache data-structures.
Each policy corresponds to one of Java reference types: hard-reference, soft-reference, weak-reference.
Each policy follows the same policy used by Java garbage collector.
With hard policy cache entries are never freed.
With weak policy cache entries are freed as fast as it is required by garbage collector.
With soft policy entries are stored as long as possible, but freed if required to free memory.