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.