Support non-standard Python executable names

Closes #154.
Rewrite the bootstrap script in Python

This allows trouble-free builds on platforms with non-standard Python
executable names. As a bonus, it passes the arguments received on to
configure.py, so you don't have to reconfigure to build in a
non-standard manner.
Merge branch 'master' of git://github.com/ehird/ninja
rearrange the new bootstrap.py

(e.g. remove tabs)
remove huge indent from tools list
adapt parser_perftest to new depfile class
fix depfile regex to not match empty strings

From a patch from Allan Odgaard <github@simplit.com>.
switch DepfileParser to take a string* to make memory clearer

Add some comments as well.
add (failing) test involving spaces in depfiles
de-escape backslashes in depfiles while parsing
fix parser_perftest after depfile change
add an "all" target to build all binaries
link to blog post in docs
move some docs to home page
add bash completion based on zsh completion
ninja_syntax: add restat attribute to rules

Patch from Ami Fischman <fischman@chromium.org>.
add script for measuring build performance
handle nuls more carefully in re2c rules

- '.' in re2c matches anything except \n, which means it matches \000.
  Be more careful about which characters we match.
- The fallback rule [^] reads ahead another character, which means it
  can read past the trailing \000.  Add a separate rule to match it
  specifically.

This was found by Valgrind.
minor re2c cleanups
switch the core ninja parser to use re2c for the lexer

- Delete the old "Tokenizer" code.
- Write separate tests for the lexer distinct from the parser.
- Switch the parser to use the new code.
- New lexer error output has file:line numbers so e.g. Emacs can
  jump your editor to the syntax error.
- The EvalEnv ($-interpolation) code is now part of the lexer as well.