Add a Guava cache implementation
Improve cache key format. Add tests.