Checkmate Patch ver1.50

Mostly debugged checkmate:
-Fixed bug where function may go into an infinite loop
-Fixed rare case where pawn  that had king in check would freeze the
program
-Fixed various if statement issues
-Added post and pre conditions to certain member functions in Game State