Clean up some of the imports
Remove some dead test code
Add postconditions to the piece properties

These contracts ensure that only the proper bit values are
returned in the results.
Add postconditions to the attack properties

Attack bitboards should not include friendly pieces.
Add a note about the strictness of the board parsing
Add Board.reset

This function is now used in place of using Board.parsePosition to
reset the board to an empty state. This has greatly reduced the
amount of time needed to execute the tests.

Fixed a bug in the testing of enpassant target square parsing.
Forgot to reenable the tests
Replace some ineffective tests

These tests were supposed to test Board.make as it relates to
one of the castling moves. These new tests do so better.
Split move testing between public and internal API

The public Board.make does two things: it parses the move text
from the user and then if parsing is successful it also makes
the move. Parsing is only successful if the move is valid, in
addition to having the correct syntax. A move is valid only if
it satisfies the Board invariant.

This commit represents work that will take a few passes to complete.
In this first pass the testing of Board.make that takes a Move
type was completely reworked. It is now higher quality than before.
Also, there was a need to further ensure that no invalid move can
be created from one of the Move factory methods on Board.

After this work is completed the Move factory methods, parseMove,
and the various isMoveValid queries will all be in sync and
accurate. In particular, isMoveValid will prevent an invalid move
from being created in the first place. Board.make relies on the
accuracy of this test so that the invariant will be satisfied
when a move is made.
Improve the make move testing

Moved a lot of functionality inside of Board to make aliasing
more straightforward.
Remove some test code duplication

Use static immutable test data containers with loops instead
of mixins. This makes it easier to debug errors.
Updated the tests for Board.parseMove

Also cleaned up the tests for Board.make
Move more expected values to the front in assert statements
Cleaned up the tests for Board.undoCore
Improve the serialization of MoveList
Trim down the movegen tests until working

Many of the tests needed improvement. Will rework them from the
ground up.
Remove the tests for the public undo move function

Not sure at the moment if these tests add substantive value
over the tests of the core undo move function.
Remove some dead code
Clean up some more tests
Update testing for the move validators