Added getSqsInRow, getSqsInCol, getSqsDiag methods
Changed isCastling to be move scalable and chached square
Added invarient check in constructor