Enable opaque pointers for LLVM master (#45012)
Essentially a rebase of #44334 to current master. I would like to work on
some IR canonicalization improvements, but it doesn't make much sense
to that without opaque pointers, since canonical forms will change.
This bootstraps fine on LLVM master, though there are test failures
both with and without this change. I think we'll just have to address
those as part of the regular upgrade cycle as usual (though we should
probably do LLVM 14 first to catch any 13->14 regressions).