Removed unused references
Reorganized namespaces
Added CacheContext, which is accessible from within the cacheable functions
Added support of lifetime changing to CacheContext