Most of our private headers need to be treated as submodules so that
Clang modules can export things correctly. Previous commits that split
monolithic headers into smaller chunks were unaware of this requirement,
and so this is being addressed in one fell swoop. Moving forward, most
new headers will need to have their own submodule (anything that's
conditionally included is exempt from this rule, which means __support
headers aren't made into submodules).
This hasn't been marked NFC, since I'm not 100% sure that's the case.
requires cplusplus20? or what's the rationale for adding that on various headers?
E.g. I see <latch> is marked with requires cplusplus14, even though it's also new-in-C++20.