With opaque pointers, it should no longer be necessary to protect against recursion when converting Clang types to LLVM types.
Dropping this entire code passes check-clang and llvm-test-suite, but I'm not entirely confident that there aren't remaining edge cases.