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.
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