[libc++] Avoid type-punning between __hash_value_type and pair (#143501)

This patch is very similar to #134819 in nature. Before this patch, we
were dereferencing pointers to objects which were never constructed. Now
we always assume that nodes store `pair<const KeyT, ValueT>` for
unordered_maps instead, as they actually do.

NOKEYCHECK=True
GitOrigin-RevId: 4c8fab399b2ebf37f6a560bc2d5c6b4f0045a19f
4 files changed