A decorator for caching properties in classes
