Performance improvements for TaggedCache and KeyCache

Create a new Beast class, `beast::hashed_key` which wraps around a key type, and adds support for hash caching and optimizes key comparisons by comparing hashes before performing (potentially expensive) comparisons of the underlying keys. 

Use code in `ripple::TaggedCache` and `ripple::KeyCache` to move the hashing outside of locks and reduce the number of times hash functions must, actually, be called.

(Also, pardon the noise in the project files - they include changes from the earlier RocksDB commits)

Should the type of `hash_value_` be a template parameter, too? I notice `beast::basic_hardened_hash` uses a `result_type` member from the `HashAlgorithm` which is `size_t` in the case of `siphash`, but that's not guaranteed.