Support for a Cache Key Generator

resolve #259
Initial commit for Cache Key Generator.
`isset()` plz - let's not negate the absence :)