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

This is #15720, rebased and reopened.

cc @nikomatsakis
Ah, your method is robust to `idx` exceeding the capacity. Nevermind. Caching `self.table.capacity() - 1` might still be worthwhile?