Reduce the size of the hash arrays
Reduce the size of the hash arrays

Only the file of the square matters for the en passant hash, since the
rank can only be 3 or 6, and this is determined by whose turn it is to
move--which has its own hash.  So, only eight hash entries are needed.

For castling, only the state of the four rooks matters (whether the king
has moved is checked in the square_hash() method. So, only four hash
values are needed.

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