make deterministic_hash host-architecture-independent
`DefPath::deterministic_hash` used to call `std::hash::Hash`, which depends on the current architecture in several ways, which would prevent metadata written on one host architecture from being successfully read on another one.
Use a hasher we control instead.
Fixes #38177.
r? @michaelwoerister