Enforced const-correctness (except in parameters passed by value, because gcc doesn't care)
Added Move constructors, and got rid of static "constructors" and some tests. Also, added a "color" field to Move.
Added methods to Board: isLegalMove, isInCheckmate, isInStalemate, isInSomemate.
Restructured the unit tests, and eliminated the need for the "test_" prefix.
Changed makeMove and undoMove to use the new Move.color field.