eliminate  Check() and CheckMate() 
remove junk lines
cleanup Simulate_IS_Check()
take carefull look at Pawn_Move_Fail()
think about Destination_Valid()

rethink struct layouts, function args, and clobbering
increase efficiency
implement special moves
