Track if a piece has moved as a boolean in the piece state, not a set in the board state.
Pieces and SimpleMoves can now be specified with tuples. Used this in the MateInOneSpec.
Moves are now specified without the piece using start and end squares. Using an implicit to specify simple moves (not castle and promotion) as tuples.