This is ready for initial review. This is an alpha, which means it compiles and works on my magic dev box. However, this is a sufficiently major code change that I would like some review.
A few key points: 1) This effectively reverts TS-1925 because, it turns out, 3.2.X used the MMH hash for URL hashing. However, I didn't just drop that commit, I radically changed the underlying hash control logic to have (IMHO) a much cleaner setup. The ability for user control of the hash via records.config was not brought back. 2) TS-954 is not effective for old version caches. If anyone needs a nap I can explain why recovering that space is simply not going to work if you still want access to the contents. It fails in multiple ways and the difference is simply not large enough to justify fixing it. Clearing the cache will recover the space. 3) This should (haha) have no effect on deployments that have cleared the cache since 4.0. Each stripe has a version stored in it and if that isn't a back version the compatibility logic is skipped entirely. 4) No configuration - if you bring this up on a 3.2 cache, it should just work with no changes to the config files. It is not obvious this is a good thing.
