Fix passing commandline to real compiler in temporary file.

If we invoke the real compiler and pass it the initial commandline,
e.g., due to Zi flag, that commandline will be '@filename'.  If we
put that inside a second temporary file, the real compiler will
not parse it correctly, so we should just pass the original
temporary filename.
Re-enables parsing escaped quotes.

The proper approach would be to count the number of consecutive
backslashes, and only if an even number (including zero) preceded
the quotes should we toggle 'insideQuotes'.
Since I've only seen a maximum of two consecutive backslashes so far,
this code only checks for one or two.  If there are two consecutive
backslashes, the first one is escaping the second, which means that
the quote is not being escaped, and so we should toggle 'insideQuotes.'
Do not strip quotes around arguments.

If we strip the quotes from the arguments and then pass the altered
commandline to the real compiler, we are affecting the compilation.
For example, when building with cmake, this is an expected
macro definition: /D "CMAKE_INTDIR=\"Debug\""
Stripping the quotes would change that to: /D CMAKE_INTDIR="Debug"

I ran into this issue when trying to add precompiled header support,
because I was passing the original commandline to the pch compilation,
but the altered commandline to the compilations that used the pch
result, which caused an error about macro redefinition.
Always use args argument in processCompileRequest for consistency.
Removes unused code for re-adding backslash to Fo flag.

No longer needed since we aren't stripping the backslashes.
Adds pch support, requires Fp flag.

Caches the pch file (in addition to the associated obj file), and
adds the pch file to the list of includes for any compilation with
Yu and Fc and not Y-.

Note that this causes a hash of the (probably very large) pch file
for every cache check.