Return a hash value for the argument. It's an integer in the
native integer range.
The hash will be the same for the same value in the running
process only (the memory address is typically used as the basis
for the hash value).
If the value is an object with an lfun::__hash , that function
is called and its result returned.