Fix and test castling moves with Board.make

Castling status should not be affected by arbitrary moves.
Each piece type is tested against each castling move.
Forgot to reset the board for each test
Update Board.make to handle playerToMove

Making a move should cause the player to move to alternate
between the two values: black and white.
Test Board.make correctly updates the half move clock

Right now make is producing an error when it tries to make
castling moves. Seems like an error in makeCore.
Review and fix Board.makeCore
Many improvements to the enpassant move processing

 - Fixed a bug in makeCore related to castling moves
 - Fixed a bug in the testing of enpassant moves and how they
   affect the half move clock
 - Should have been using the standard b.parsePosition(EmptySurface)
   to reset a board instead of b = Board() as there is no circular
   reference issues here
 - Fixed a bug in isMoveValid related to verifying the shape of
   enpassant capture moves
 - Fixed a bug in isMoveValid related to verifying the destination
   piece for enpassant capture moves
 - Improved isMoveValid's checking of the accuracy of the destination
   square for enpassant capture moves
Test how Board.make handles castling moves
Test that Board.make sets the enpassant target square correctly