This addresses: https://llvm.org/bugs/show_bug.cgi?id=28089
Some build systems use the short (8.3) file names on Windows, especially if the path has spaces in it. The shortening made it impossible for clang to distinguish between clang.exe, clang++.exe, and clang-cl.exe. So, in addition to expanding wildcards, the code now replaces short names with long ones.
Tested with ninja check-clang.
Is an error code set for the case where Length > MAX_PATH? The MSDN docs seemed a little ambiguous.