Support for a Cache Key Generator

resolve #259
Initial commit for Cache Key Generator.
Instead of allowing yet another config key, just override the entire factory if needed.