Fix Pool tests.

At any phase in the test where multiple edges are ready
simultaneously, acquire all edges and sort them into a predictable
order. This allows the test to execute deterministically regardless
of the order of edge allocation.
Fix bootstrap on OS X.

This was broken in 4c552c2c3cbc07acce9c1a379fee054a3f680100.
Merge pull request #570 from nico/fixdarwin

Fix bootstrap on OS X.
Merge pull request #568 from riannucci/fix_test

Fix pool tests (and provide utility to fix other similar issues as well)
Remove a few unused includes.
Merge pull request #572 from nico/incless

Remove a few unused includes.
delete obsolete todo
call this version 1.3.0
remind myself to push tags
require version 1.3 for building ninja itself

This catches the case where you use an older version on Ninja
to build a newer version of the Ninja code.
bootstrap.py always should work regardless.
fix truncate compile error in ninja_test on windows
Merge pull request #573 from sgraham/truncate-win

fix truncate compile error in ninja_test on windows
don't print output with extra newline
Merge pull request #574 from sgraham/no-extra-nl

don't print output with extra newline
Set stdout to binary mode in -t msvc.

Fixes issue #575.
structs not classes.

For some reason that I do not, ninja prefers:

struct Foo {
  Foo();

 private:
  void Blah();
};

Rather than

class Foo {
 public:
  Foo();

 private:
  void Blah();
};

This catches the last two usages of "class" in the code base.

Signed-off-by: Thiago Farina <tfarina@chromium.org>
Merge pull request #577 from tfarina/structs

structs not classes.
Merge pull request #576 from nico/newlines

Set stdout to binary mode in -t msvc.
do not unconditionally use PATH_MAX with getcwd

Instead, grow a buffer until getcwd either succeeds or fails with an errno different than ERANGE
(meaning the passed buffer was too short to represent the actual path).
Reset errno before calling getcwd to check it eventually did not fail.
Fix typo in HACKING.md