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 is therefore 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).