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.
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.
Adding tests for ComputationCache.
Removing some deprecated 3delight code
Finished removing deprecated code from rsl/IECoreRI/Spline.h
Changing the bindings for maxMemoryUsage to use the same functions as in the C++ interface.
Merge pull request #61 from danieldresser/deprecate_3delight_hack

Deprecate 3delight hack
Changing CachedReader so that it uses ComputationCache.

Marking some functions for deprecation: constructors and functions that set memory limits.
I've added the function objectPool() to CachedReader which could be used for the same purposes.
Modified BasicPreset so it works with parameters derived from CompoundParameter