[libc++] Simplify the implementation of reserve() and shrink_to_fit() (#113453)

Since we changed the implementation of `reserve(size_type)` to only ever
extend,
it doesn't make a ton of sense anymore to have `__shrink_or_extend`,
since the code
paths of `reserve` and `shrink_to_fit` are now almost completely
separate.

This patch splits up `__shrink_or_extend` so that the individual parts
are in `reserve`
and `shrink_to_fit` depending on where they are needed.

GitOrigin-RevId: d648eed5899c4be10f1f7866eebef2bc171e673f
1 file changed