Move the move stack to reside in a board state
Lots of refactoring, broke a few tests
Fix all broken code from the refactor, still need to implement Check checking
Fix potential move verification bug, still cannot pin down check bugs
Fix guarded square checking bug
Implement check checking, all tests pass for implemented features