Right now in the linker wrapper we manually invoke a lot of the
toolchain programs. This reproduces a lot of logic that is already
handled in clang. Since D140158 we can now target all supported
toolchains directly via cross-compilation.
This patch changes the linker wrapper to consolidate all the alternate
linking and assembler steps into a generic call to clang and let clang
handle the argument handling. This heavily simplifies the interface.