Introduce the "console" pool

This is a pre-defined pool with a depth of 1. It has the special property
that any task in the pool has direct access to the console. This can be
useful for interactive tasks or long-running tasks which produce status
updates on the console (such as test suites).
Allocate per-edge BindingEnvs lazily.

In chrome, only 2000 of 22000 build edges have bindings.  A BindingEnv is
64 bytes, so allocating these only when needed saves a bit over 1 MB of
memory.  Since env chains are shorter for lookups, builds also become a
tiny bit faster.
Propagate file rename to gitignore.

This was introduced by 68a4bb27d1a747b240ea68cd320a51dbd261ed14.
Merge pull request #741 from nicolasdespres/propagate-file-rename-to-gitignore

Propagate file rename to gitignore.
Add a simple manifest parsing perftest.
Manifest perftest: Also measure command evaluation time.
Add manifest_parser_perftest to .gitignore.
Manifest perftest: Pull manifest parsing into own function.
Manifest perftest: Try to make it build on Linux.
Merge pull request #742 from nico/maniperf

Add a manifest parsing perftest.
Merge pull request #715 from nico/lazyenv

Allocate per-edge BindingEnvs lazily.
Merge pull request #714 from pcc/console-pool

Introduce the "console" pool
Allow SIGTERM for interruption.

Default signal sent by many other programs (mainly kill(1)) to gently
terminates another one is SIGTERM.
Forward interruption signal to child processes.