Add test for a manifest ending in the middle of a keyword.
Merge pull request #622 from nico/test

Add test for a manifest ending in the middle of a keyword.
Fix diagnostic formatting regression caused by adaa91a33eb2cf23b88.

Ninja regressed to include a location for every file on the include stack for
nested diagnostics, i.e. it would print:

  input:1: include.ninja:1: expected path

Fix this so that it prints only the current file location, like it used to:

  include.ninja:1: expected path

Also add a test for this.
Merge pull request #623 from nico/fix

Fix diagnostic formatting regression caused by adaa91a33eb2cf23b88.
lexer support for scopes

I was worried that the additional branches would slow down lexing of
files, but that seems to not be the case (tested with null builds of
the 'content' target in chromium; I couldn't see a difference with and
without this patch).
implement semantics of scope keywords
add scope keywords to vim and emacs syntax files, and to ninja_syntax.py
describe scopes in the manual
make scope test a bit more interesting
mention that scopes must not cross file boundaries

Test that the current implementation doesn't allow that to happen.
Implement subninja in terms of scopes. No behavior change.
remove obsolete comment (this is now in StartScope())