Change the IRObjectFile symbol iterator to be a pointer into a vector of
PointerUnions representing either IR symbols or asm symbols. While at it,
teach IRObjectFile to handle ifuncs.
This change is in preparation for a future change for supporting multiple
modules in an IRObjectFile. Although it causes an increase in memory
consumption, we can deal with that issue separately by introducing a bitcode
symbol table.
I haven't tracked how the AsmSymbol are passed in, but couldn't we keep a StringRef instead of a std::string?
(I know it is not directly related to your patch)