Switch LLVM reflection utilities to be `CodeInstance` based
This is a natural continuation of the stream of work begun in #53219.
In particular, with #56555, it is important to be able to pass a
CodeInstance, since the ABI may be overwritten and without knowing
that, codegen will generated incorrect code for the CodeInstance.