Changing interface on ObjectPool and ComputationCache set/get store/retrieve.

Reducing the number of accessing functions and adding enums that specify how the pointers are being stored/retrieved instead, following conventions adopted in IndexedIO.
Also providing a means to retrieve the original stored pointer from the ObjectPool, throught the _copy parameter in retrieve().
Just adding some standard doc comments to the class.
Added new functions to ComputationCache

Adding erase() for removing one entry in the cache.
Adding objectPool() to provide access to the specific ObjectPool the ComputationCache is using.
Changing the ObjectPool to always require the memory limit as a parameter.