Fix bug in Board::square_attacked_by()
Fix bug in Board::square_attacked_by()

The function would return true if a piece could reach the square via a
strictly non-attacking move, for example a normal pawn move. This has
been fixed by placing a generic piece at the destination if it is
unoccupied to ensure that only attacking moves return true.

MarkZH/Genetic_Chess,MarkZH/Genetic_Chess,MarkZH/Genetic_Chess,MarkZH/Genetic_Chess,MarkZH/Genetic_Chess