make CacheCoherentHash set the value internally too

And return a normal hash on dup, effectively decoupling the duplicate
from the specification at all. Previously it was returning another
CacheCoherentHash, but without @spec set, breaking on use.
add testing and bump version
Merge pull request #5 from instructure/cache_coherent_hash_fix

make CacheCoherentHash set the value internally too