Actually use the passed in copy function
Add clarity to README

Make it clear that mutating a value from the cache does not affect the cached representation