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())