Added a principal variation (effectively) to the board representation.

Perft(2) = 680 is wrong. Should be 400

Fixed a bug in self.isThreatened

Generating legal moves by generating a list then checking every move in the list to see if it causes check is horribly inefficient