Move some DepsLog::Deps initialization code into its constructor.

No functionality change.
Move updating DepsLog's deps_ array into its own function.

No functionality change.
Let DepsLog::RecordDeps() update its in-memory representation.

This is a behavior change, but it should be safe: Graph only queries the
deps log at startup, before running any command. Nothing else currently
queries the deps log.
Keep a DepsLog's data valid after a call to DepsLog::Recompact().

Previously, a DepsLog would become invalid after Recompact() was called,
due to Recompact() making all node ids refer to a temporary DepsLog
object constructed in Recompact().
Recompact the deps log when it gets too big.

Now that Recompact() keeps all data structures intact, it can just be
called at the beginning of a build and the build will still work.
Add support for OpenBSD.

Use ppoll() on OpenBSD.  Also, fix interrupt handling to recognize
that on FreeBSD and OpenBSD, an interrupt might have been delivered
even if pselect()/ppoll() don't return -1/EINTR.
Merge pull request #563 from nico/recompact-deps

Implement deps log recompaction.
minor formatting change
Merge pull request #566 from nico/tweak

minor formatting change
Don't poll pipes using POLLRDHUP

POLLRDHUP is Linux-specific, and isn't necessary for polling pipes
anyway.  Linux and OpenBSD both return POLLHUP if no process has the
pipe open for writing.
Merge pull request #565 from mdempsky/master

Add support for OpenBSD.