Improve handling of fatal errors on Windows, support creation of minidumps
Changed #ifdef _WIN32 to #ifdef _MSC_VER to make sure that MinGW compiles happily
No need to write 'struct' before type name when declaraing variables in C++.

Signed-off-by: Thiago Farina <tfarina@chromium.org>
add canon_perftest
Merge pull request #328 from nico/canonperf

add canon_perftest
Only store command hashes in the build log.

.build_log load time 350ms -> 17ms, filesize 197MB -> 1.6MB on
Mac. On Windows, it's 500ms -> 20ms.

Makes the build log a lot less useful for scripts, but there could
be a tool for use cases that need log information. A prototype of
such a tool is in https://github.com/nico/ninja/commit/1b243d311

The hash function is 64bit murmurhash2. Assuming that that different
commands get the same hash only by chance, it's is very unlikely
for two different commands to hash to the same value with a 64bit
hash.
Add a hash collision benchmark.
Merge pull request #329 from nico/hash2

Only store command hashes in the build log.
fix windows build
add $in_newline
improve test
Merge pull request #330 from sgraham/win32-hash-build

fix windows build
Merge pull request #331 from sgraham/add-in_newline

Add $in_newline
Prevent multiple definition link error

Globbed inclusion of `src/hash_collision_bench.cc` cause link errors
Merge pull request #333 from jonforums/no-main-multi-defs

Prevent multiple definition link error
rearrange shell quoting in configure.py
fix quoting thinko
Merge pull request #316 from tfarina/struct

No need to write 'struct' before type name when declaraing variables in ...
no recompacting needed when log file is empty
Merge pull request #338 from syntheticpp/empty-log-file

no recompacting needed when log file is empty