[clang][OpenMP] Prototype #2 of directive splitting
This is proto #1 minus the introduction of opaque AST nodes.
This isn't 100% finished, but it should be enough to illustrate
the changes needed to implement the feature.
Proto #1: https://github.com/llvm/llvm-project/pull/108855