Added logic to king and rook evaluators that invalidates castling when those pieces are moved.
Added functions to perform castling and to evaluate remaining castling logic.
Implemented tests for castling evaluators. Tests are passing. Moved tracking of castling logic from rook and king evaluators to _evaluate_move.
Added skeleton functions for evaluating check and checkmate. Modified evaluators to take an optional turn argument so they can be reused in check and checkmate functions without having to globally change to the turn variable of the game.
Added first-pass logic at check, checkmate, and stalemate.