Castling and end conditions

Added methods to check and do  castling as well as a method to determine
if a player has any valid moves he or she can do.