Parallelize .ninja_deps loading

Split the build log into independently-parseable chunks using a complex
heuristic involving 0x8000xxxx values, then parse the chunks in several
parallel passes.

The file will still be loaded correctly if the heuristic fails -- only
performance would be affected. The heuristic assumes the v3 deps log
format.

Combined with the previous parallelization changes, ninja is much faster
on the AOSP tree. e.g. Assuming warm disk caches:
 * Building "nothing": 11.3s -> 0.5s
 * Building "droid:    12.9s -> 1.0s
(runtimes are from "ninja -f out/combined-hikey960.ninja target")

Bug: none
Test: ninja_test, build Android
Change-Id: I6b2f3ef1e0cade0046efa93f0408236c8c187cea
2 files changed