Retrieve object hash code and applies a supplemental hash function to the
result hash, which defends against poor quality hash functions. This is
critical because HashMap uses power-of-two length hash tables, that
otherwise encounter collisions for hashCodes that do not differ
in lower bits. Note: Null keys always map to hash 0, thus index 0.