Allow for the configuration of a cache_key_digest method. This will
allow someone to use something other than #hash on an object (which will
change per VM startup).

Using something like Digest::MD5 takes double the time as Object#hash,
however, it remains the same for the same value across multiple VMs.

This is especially handy when using something like Redis to cache values
which should persist across server restarts and allow for multiple
instances to talk to the same Redis server.

Update existing specs and add new spec for configurable
cache_key_digest