First version of ObjectPool class.
Adding python bindings and small fixes.
Binding ObjectPool::memoryUsage as a python function (instead of as a read-only property).
Updating ObjectPool tests for the memoryUsage function.
Adding ComputationCache template class ( based on LRUCache ).
Changing SceneCache to use ComputationCache.

It currently has hard coded limits for the sizes of the ComputationCaches.
It currently returns the objects stored in the cache without copying them as would be required by the interface of SceneInterface. but we are considering changing it to return ConstPtr in this branch.
Changing signature of store function to prevent non-const pointers be passed to it.
Chaning the python bindings for the ObjectPool.retrieve so that we duplicate the object from the cache to return a writable object to python.
Changing SceneInterface/SampledSceneInterface to return ConstPtr for attributes,transforms and objects.