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

This is #15720, rebased and reopened.

cc @nikomatsakis
Shouldn't these impls already exist? If they don't, I would think that the general form (`impl <'a, T> Deref<T> for &'a T`) should be added to some central place like `core::ops`.