Check and mate unit tests and improved the tests on the board.
When moving resolve the check issue otherwise the move is illegal.
Misc small changes that account for nothing.