This change adds support for joined parameters for /D, /U and /I options like rc.exe, and fixes a problem encountered while trying to cross-compile from Linux to Windows using a custom cmake toolchain, ninja, llvm-rc, and MSVC headers + libraries extracted from the Visual Studio 2019 build tools.
As far as I know, CMake doesn't know it's calling llvm-rc on Linux, and generates the same command-line arguments it would normally feed to rc.exe on Windows. It should also be noted that in order to get partial success cross-compiling using llvm-rc, I had to patch my .rc scripts and make a minor modification to CMake to disable the cmcldeps wrapper. Patching llvm-rc to accept the arguments as joined worked around the problem that CMake generated the command-line parameters as joined, which works with rc.exe but not with llvm-rc.
A very similar change has been done for similar reasons for the /fo flag, but didn't apply the change to /D, /U and /I: https://reviews.llvm.org/D54191
This is my first contribution to LLVM, so feel free to request anything necessary to fit within the contribution guidelines.