Add a cache invalidation decorator method to fin.cache.

If a method 'a' is decorated with @fin.cache.invalidates(b)
then b should be a cached object, and any cached results
for 'b' shall be discarded every time this method is called.

Note: both a and b must be methods/properties on the same object