Optimized HashMap. RawTable exposes a safe interface. (reopen)

This is #15720, rebased and reopened.

cc @nikomatsakis
Is rustc/llvm smart enough to optimize this into a noop? Otherwise, this can just be a transmute.