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

This is #15720, rebased and reopened.

cc @nikomatsakis
let `S` be the last space in the array, and `A` be the element after it. `A` must be in its ideal position, since there is a space before it. Now assume we are inserting `N` into the map. If it lands directly in `S`, then both it and `A` are in their ideal positions. If it lands anywhere else but `A`, then `A` will not be moved, and thus is still in its ideal location. If it lands on `A`, then one of them will get this space, and be in their ideal location.

Checks out.