Use standard hash function for `Z.hash` and add `Z.seeded_hash`
For consistency with other integer types in the standard library
(modules Int, Int32, Int64, Nativeint), let's use the standard
hash function (`Hashtbl.hash`) for `Z.hash` instead of our variant.
This is a bit slower but has several benefits (see #145):
- 32/64 bit compatibility
- better mixing of the bits of the result.
While we're at it, add a `Z.seeded_hash` function, defined as
`Hashtbl.seeded_hash`, so that the `Z` module can be used as the argument
to the `Hashtbl.MakeSeeded` functor.