Cloning cache by IdentifyHashMap

Ensures that separate objects that happen to .equals() are
cloned independentyly.
Merge branch 'master' into configuration-as-json