Reapply "[MC] Use a variant to hold MCCFIInstruction state (NFC)" (#170342)
This reverts commit 8217c6415ab76c2a0f06705100c76207cd1e6bc0.
I asked Claude Sonnet 4.5 to hazard a guess at what was causing the
buildbot failure, and it seems to have correctly pinned it on a bug in
GCC7, although it didn't give a working fix.
I worked out of a `gcc:7.4` docker container and moved code around until
`MCDwarf.cpp.o` compiled without errors or warnings, so hopefully that's
sufficient to fix the bot.