unifdef: add a comment to explain the newline handling
unifdef: close input when processing is complete

This avoids leaking input file handles when processing multiple
files, and it should help with the temporary file handling
problems on Windows.
unifdef: slightly cleaner backup filename handling
win32: report intermediate errors in replace()