Make top level modules for all the C standard library headers.
The __stddef implementation headers need header guards now that they're all modular. stdarg.h and stddef.h will be textual headers in the builtin modules, and so need to be repeatedly included in both the system and builtin module case. Define their header guards for consistency, but ignore them when building with modules.
__stddef_null.h needs to ignore its header guard when modules aren't being used to fulfill its redefinition obligation.
__stddef_nullptr_t.h needs to add a guard for C23 so that _Builtin_stddef can compile in C17 and earlier modes. _Builtin_stddef.nullptr_t can't require C23 because it also needs to be usable from C++.
I couldn't come up with anything clever to support this in modules. If I get rid of the guard, NULL still doesn't get redefined in modules. If I move the undef to stddef.h then NULL gets undefined, but not redefined. So I think precompiled modules must inherently have #pragma once semantics. If we really had to, we could move this back into stddef.h and let it be textual, but it's distasteful that NULL gets defined in every single module that includes stddef.h and has to be merged later.