Adds KingTest::testCastling

+ King should be able to castle
Fixes Piece->check()

Bug causes infinite function calls because it doesn't skip pieces of the
same color when detecting threat. Moved the logic for detecting threat into
separate reusable function. Looks pretty nice now.
Adds all assertions for KingTest::testCastling
Update Piece->check method
Fixes KingTest::testCastling
Satisfies KingTest::testCastling
Removes unused Pawn code

Pawn can never hit edge of board due to promotion