Removed the Square.- method. Only create the move offsets once.
Flipped the order of history tuples so move comes before board.
Change to resuse boards generated by the Board.moves method.
Board instances resulting from moves are now lazy vals on Board. MovePrinter is now Move's toString implementation.
Simplified castles through check logic.
Removed king's end square from between squares for castles. The bug caused the same check to be done twice in the logic to prevent castles through check.
Updated to reflect MovePrinter becoming Move's toString.
Mid-point in the move generation optimization.
Mid-point in pawn move simplification.
Move generation has been re-organized.