When using -save-temps in Clang, we usually get a .s assembly file alongside the .o output.
However, when using LTO, Clang no longer produces those .s files because it "delegates" the responsibility of writing those temporaries to LLD, but LLD doesn't support writing out a .s assembly file alongside the final .o output with LTO enabled.
This patch adds a new "asm" save-temps value and adds the necessary logic to the LTO library to allow it to write out an assembly file alongside an object file when requested.
To implement this, we use the same trick as Clang: Codegen twice but with a different filetype for the second run.
As this is a debug feature, the performance shouldn't matter much