JRuby compatibility: Allow hashing libraries other than CityHash

Previously, CityHash was used exclusively to provide non-cryptographic hashing of string keys.  CityHash is quite fast, but relies on C native extensions and as such, is not usable on JRuby.

This patch removes the strict requirement on CityHash, and instead introduces logic to use the first available hash library of CityHash, MurmurHash3 (a JRuby-compatible fast noncrypto hashing library), or Digest::MD5 (built-in cryptographic hash library).