Add NetBSD support.
It works fine under NetBSD/amd64 6.99.47.
add some parens to silence a gcc warning
amend HACKING.md with instructions for Arch Linux
Provide an error message on malformed lets. Fixes #807.
Use a small, standalone testing framework instead of googletest.

Ninja currently uses googletest for testing. That makes building
ninja_test somewhat annoying since it requires that one passes
--with-gtest PATH to configure. It turns out just implementing the bits
of googletest that ninja uses needs about the same amount of code than
making the --with-gtest flag in configure.py work and making googletest
print test results in a way we want (!)

In addition to making configuration simpler, this also makes compiling
tests much faster: On my system, touching src/build_test.cc (the slowest
file to build in ninja) and rebuilding ninja_tests is twice as fast than
without this patch. Building all is noticeably faster too: 5.6s with
this patch, 9.1s without this patch (38% faster).

The most noticeable things missing: EXPECT_* and ASSERT_* don't support
streaming notes to them with operator<<, and for failing tests the lhs
and rhs are not printed. That's so that this header does not have to
include sstream, which slows down building ninja_test almost 20%.
If this turns out to be annoying, we can maybe add it.
Add support for --gtest_filter. The bots need it, and it is a useful flag.
Don't support ? and : for --gtest-filter, a bit simpler.

Let me know if you use these!
Don't need to install and configure with gtest any more
fix warning
remove more things not needed without gtest
Fix building tests on Windows again.

Turns out gtest was pulling in sys/stat.h, and we were
using stat() through that in tests. This doesn't work
with old MSVCs, so we should probably replace that with
RealDiskInterface in a follow-up.
Don't print "Recompacting..." message from tests.

Now tests don't print anything. Non-test behavior is unchanged.
Make auto-reconfiguring work if CFLAGS contains more than one flag.

When using an open-source clang on OS X, one has to pass an isysroot
flag so that it can find system headers (stdio.h), like so:

  CXX=path/to/clang++ CFLAGS="-isysroot $(xcrun -show-sdk-path)" ./configure.py

Previously, configure.py wouldn't quote envvars containing spaces, so
it'd rerun this as

  CXX=path/to/clang++ CFLAGS=-isysroot /sysroot/path ./configure.py

which would then die because /sysroot/path wasn't excecutable.
Fixed cygwin compatibility (issue #806)