safely remove output_file, which may not exist

For example, in clang-425.0.28 (what Apple ships as `cc` on OS X 10.7),
a failed compilation does not generate an output file. But in
clang-503.0.40 (OS X 10.9), it does create a zero-sized output file.
Would catching `Sys_error` work just as well here?  I'd prefer to avoid the catch-all handler if possible.