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

This is #15720, rebased and reopened.

cc @nikomatsakis
I don't understand how this is safe. Just because the reference is consumed does not mean that the table will stay the same forever. For example, I could use this method to get `'static` references to some key/value pair and then drop the whole `HashMap`.

What would be safer would be implementing this method on `FullBucket<K, V, &'t RawTable<K, V>>`.