Remove implicit shrinking from hash_map.

Part of enforcing capacity-related conventions, for #18424, the collections reform.

Implements `fn shrink_to_fit` for HashMap.
The `reserve` method now takes as an argument the *extra* space to reserve.
Is the required property just `min_capacity(usable_capacity(x)) <= x`? Because this is *always* true for positive `x`: integer division is floored, not just some unspecified rounding, i.e. `(cap / 11) * 11 <= cap` always.