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

This is #15720, rebased and reopened.

cc @nikomatsakis
Man, this would have been super useful to have defined 500 lines ago. Worth hoisting for clarity?