make DepsLogTest actually clean up on teardown

I think I commented this out when tracking down a bug and forgot
to uncomment it.
add a test for truncated deps

This doesn't yet exhibit the full problems with truncation, but it's
a start.
disable SubprocessTest.SetWithLots on travis-ci

We run into fork() limits on their VM.
deps log: recover on truncated entry

If a read fails while reading an entry, truncate the log to the last
successfully read entry.  This prevents corruption when a subsequent
run appends another entry.
fix warning
don't count eof as truncated
Don't crash during deps log recompaction if there's more than one deps entry.

Part of issue #554.
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 #555 from nico/depscompactcrash

Don't crash during deps log recompaction if there's more than one deps entry.
Merge pull request #556 from nico/unlink

Make sure that recompaction writes a pristine new depslog.
Introduce a Truncate() function that works on POSIX and Windows.

Hopefully fixes the build on Windows.
Merge pull request #558 from nico/buildfix

Introduce a Truncate() function that works on POSIX and Windows.
Fix Windows build more.
Merge pull request #559 from nico/9_9

Fix Windows build more.
added missing windows include
Merge pull request #562 from TheOneRing/fixed-include

added missing windows include for Truncate
share platform support between configure/bootstrap