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.
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
Fix bash-completion support for -C option to expand tilde
Style: Fix inconsistent indentation
Merge pull request #747 from nocnokneo/master

Fix bash-completion support for -C option to expand tilde
Make manifest_parser_perftest build on Windows.
Merge pull request #750 from nico/perfwin

Make manifest_parser_perftest build on Windows.
Support completion of arguments to -f and -C options

Note: This is only available for bash_completion users.
Fix getopts barfing over the terminal when trying to complete -f and -C

Note that this is only applicable for when bash_completion is
unavailable.
Merge pull request #748 from nocnokneo/bash-completion-for-f-and-C

Support completion of arguments to -f and -C options
Accept \r\n line endings in depfiles.

Fixes #752.
Merge pull request #753 from nico/nlacc

Accept \r\n line endings in depfiles.