Fix #701: Escape backslashes in ld @files
Avoid hitting Win32 command line length limits when invoking ld

I observed this problem when building the FB test suite while fbc
didn't find ld.exe in the bin/ directory, thus used shell() instead of
exec(). shell() uses cmd.exe which has an 8k command line length limit
that was hit by the ld command line for linking the FB CUnit tests,
and then the linking failed with a "The command line is too long"
message. This problem didn't show up when ld.exe was found in bin/
because then fbc uses exec() which uses CreateProcess() which has a
32k limit that the FB test suite did not hit.
Preserve some temporary files under -R only, ignoring -RR

such as temporary .bas, .def or @files. -R wasn't originally meant to
preserve those, but it's the best choice for doing it. -RR on the other
hand should be for the final .asm output only, so temporary .defs etc.
aren't affected.