Add -fbinutils-version=

In August I proposed adding -fbinutils-version= to Clang
The main purpose is to condition various accumulated workarounds for the ELF
binary format (for GNU as and GNU ld bugs/unimplemented features in older
versions). When the user does not use GNU as or GNU ld, don't make
certain pessimized
MC/CodeGen decisions. See the patch's summary for details and various
hacks I've found for multiple targets
(X86/AArch/PowerPC/Mips). Now I recall the patch as I ponder on using
the option to enable better garbage collection for .gcc_except_table

From the review:

jhenderson said: "This looks reasonable to me, but I don't know the
surrounding code well enough to be comfortable LGTM-ing it. Sorry!"
pcc said: "I agree with @MaskRay that this should be a binutils-specific option.
The flag -mlinker-version seems to have been designed around macOS-specific
assumptions i.e. there is a single linker (ld64) and that the linker and
assembler are not version coupled. Having this option be binutils-specific seems
like the best way to reflect the binutils-specific requirements."

Both responses seem like mild preference. I appreciate if folks can
continue reviewing the patch:)

(My last reply has addressed questions about why we do not reuse