Replace the DataCacheManager
The DataCacheManager does some funky things and needs to be refactored to make
the API simpler and enable native use of LSIDs as system identifiers. There are
also several bugs in it due to threading issues and the naming of .dat files
based on a timestamp.
The ObjectCache will fully replace the DataCacheManager. The ObjectCache has a
simple API based on LSIDs. CacheObject is an interface for objects stored
within the cache. It can be extended to deal with many different types of data.
It also includes callbacks so that cache objects can deal with their own
ObjectCache also includes a listener interface so that external objects can
listen and react to cache events.