Including xlocinfo.h is a bit of a layering violation; locale.h is
the C library header we should use, while xlocinfo.h is essentially
part of the MS C++ library. Including xlocinfo.h brings in yvals.h,
which brings in yvals_core.h, which defines the MS STL's version
support macros, overriding what libc++'s <version> had defined.
Instead just include locale.h, and provide the few defines we need
for locale categories manually.
Why not doing the same as https://github.com/microsoft/STL/blob/main/stl/inc/xlocinfo.h#L35? I.e. _X_MESSAGES + 1.
No strong feelings about it anyway.