Should be compile-time constants
Unittest MoveList and fix errors
Further QA on MoveList

After improving the unit tests some further errors appeared.
This commit improves the following
1) Clarified the understanding of the MoveList encoding and iteration process
2) Removed the value UndefinedCoordinate after testing the Coordinate debug printing
   It showed that UndefinedCoordinate == H8, an oversight in the design.
   Instead of stretching the encoding of Coordinate to 7 bits instead removed the
   need for UndefinedCoordinate. This was assisted by the lazy enforcing of the
   invariant in Move.
3) Added debug printing to Coordinate, Piece, and Move types.
4) In order to add the debug printing to Move had to make the read properties constant.
Adjusted the format string symbol
Another QA pass on BoardStatus

1) Removed the full move number
   It keeps track of history which is not necessary inside of Board
2) Simplified the boolean set logic
Performed a QA pass on Move

1) made the clear masks more accurate
2) improved the performance of the castling flags while also improving clarity
3) use the new boolean code style from BoardStatus
4) more accurate unit tests