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

This is #15720, rebased and reopened.

cc @nikomatsakis
Yeah this `for` isn't necessary. As proven elsewhere, there always exists a hash in its ideal location. This can be a `loop`. The `break` can become a `return`.