[libc++] Optimize std::swap of locales (#209760)

Currently we copy construct `locale`s whenever we swap, which is quite
expensive for locales since that does atomic increments and decrements.
We can just swap the pointers instead.

GitOrigin-RevId: 61a8d42409f596def8befa1350f79609de08027c
7 files changed