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

This is #15720, rebased and reopened.

cc @nikomatsakis
Zeroing in a destructor to prevent double destruction sounds like incorrect usage of `#[unsafe_no_drop_flag]`.