Add or_insert_with_key to Entry of HashMap
Add or_insert_with_key to Entry of HashMap

Going along with or_insert_with, or_insert_with_key provides the
Entry's key to the lambda, avoiding the need to either clone the
key or the need to reimplement this body of this method from
scratch each time.

This is useful when the initial value for a map entry is derived
from the key. For example, the introductory Rust book has an
example Cacher struct that takes an expensive-to-compute lambda and
then can, given an argument to the lambda, produce either the
cached result or execute the lambda.

This is modified from https://github.com/rust-lang/rust/pull/70996.

rust-lang/hashbrown,rust-lang/hashbrown