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

This is #15720, rebased and reopened.

cc @nikomatsakis
Yes, we are jumping from `cap=0` to `cap=2^N`, whereas `Vec` would be going through 1, 2, 4, 8, ...