Make sure that recompaction writes a pristine new depslog.

...even if a prior run of DepsLog::Recompact() exited without cleaning
up, for example due to a crash or because someone added a `return true;`
in the middle of the function while debugging.  Or because someone hits
ctrl-c during deps log recompaction.

No test, because I can't think of a way to trigger this scenario
programmatically.

Part of issue #554.
Merge pull request #556 from nico/unlink

Make sure that recompaction writes a pristine new depslog.