Explicit hash values

This patch adds new `_hash` variants for each of the functions for
interacting with hash tables.  These new variants let you provide a hash
value explicitly, as an extra function parameter, instead of making the
hash table call its `hash` callback to generate the hash value.  This
can be useful if you've already calculated and cached the hash value
somewhere.