Initial invariant for Board implemented

The invariant and all code paths have been enabled.
This commit also fixes two bugs in MoveList.
 - serialization was incorrectly using %s for move serialization
 - reset() was insufficient. stale values remained and appeared in
   a movegen test.