Add 'modified_cache_key' for cache key DI.

By overriding the single method 'modified_cache_key', downstream code
can inject dependencies into cache key creation. This is useful for
cache versioning, for example. Example included in the README.

This commit also switches the spec suite from mocha to rr, because rr
allows stub method implementation
Merge pull request #52 from bkudria/master

add a single method to override to customize cache keys