This relands r365703 (and r365714), originally reviewed at
https://reviews.llvm.org/D64527.
The problem with the old approach was that clang would now warn about
-Wa flags that the integrated assembler didn't understand even when
-fno-integrated-as was used.
Just checking for that before calling CollectArgsForIntegratedAssembler
still makes clang warn about unused flags with -fno-integrated-as, which
isn't desired either.
Instead, omit just the "unknown flag" diag if the integrated assembler
isn't in use.
One of the new test cases is by nickdesaulniers from
https://reviews.llvm.org/D64655.
(This just wraps all the red lines on the lhs in an if (IsIntegratedAs) and leaves them all otherwise unchanged.)