Our best guess is that the two syntaxes should have exactly equivalent
effects, so, let's be consistent with what we do in libcxx/include/.
I've left #include "include/x.h" and #include "../y.h" alone
because I'm less sure that they're interchangeable, and they aren't
inconsistent with libcxx/include/ because libcxx/include/ never
does that kind of thing.
Also, use the _LIBCPP_PUSH_MACROS/POP_MACROS dance for <__undef_macros>,
even though it's technically unnecessary in a standalone .cpp file,
just so we have consistently one way to do it.
Not in this PR, but I think it would be a good idea to include the granular header if not all of the header is implemented in one file.