Fix cache key due to hash randomization.

Calling 'keys' on a hash does not guarantee to return the keys in
any given order. The next time you call 'keys', even on the same
hash, the order *can* be different. Because you use it here for the
constructing the cache key, this will result in a cache miss.

Also, starting Perl 5.18, the next time you perform 'keys' on the
same hash, it's GUARANTEED that the result will be different!
Ref: http://onionstand.blogspot.nl/2012/12/are-you-relying-on-hash-keys-being.html