Adding unit tests and fixing bugs which they find.

Updated so pieces moves will update after moving the first time
More Unit tests, this time for castling