Cache the result of a method or getter for better performance. Supports timeout and clearing the cache.