unifdef: correct exit status when lines are modified but not deleted
unifdef: do not needlessly modify files when updating in place

If unifdef made no changes, leave the original input file
in place and delete the temporary working copy.

Inspired by http://trac.webkit.org/changeset/156877