removes CaslingDetails require from Move
adds moveIsBlocked to Position - forwards to _board.moveIsBlocked
changes Board.isDoublePawnMove to _isDoublePawnShape and refactors pawn shape checks in Move
adds playerCanMate to Board
adds getAttackers and playerCanMate to Position - forwarded to _board
changes regular loop to Square.forEach in countLegalMoves in Position