Namespaces in API notes

Looks like this PR by @zoecarver was reverted due to a C++ compile-time regression. I’m not well versed enough in clang to understand why (or even, why this would affect C++ compilation outside of Swift importing C++ APIs), is this a fundamental issue with the approach or is this something that can be fixed in the near future?

Being able to add API notes to namespaces types is blocking me from building a more complete prototype of importing MLIR APIs into Swift. It seems like the most significant issue may be related to nested namespaces and tags? Would it be possible to merge partial support for only a top-level namespace? (All of the types I would need to annotate would be directly under the mlir namespace, most notably attaching import_as_ref to mlir::MLIRContext).