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

This is #15720, rebased and reopened.

cc @nikomatsakis
This seems to only be used in `find_or_insert_with`. Additionally, I don't see that this gives much extra safety - all it prevents (if I understand correctly) is mutating bits of the `HashMap` other than the table during search, which shouldn't cause a problem anyway.