fix for new way of saving castling and e.p. information
I forgot to make some conversions to the new-style encoding of castling there
(using the enum constant NoRights instead of -1 to indicate
the absence of rights, which was the price of storing the
rights in the board, which is an unsigned enum type.)
I also was a bit worried about portability, because I casted the enum type ChessSquare
to (int) before comparing it with (possibly negative) constants EP_NONE etc.
Now on my system enum types are (unsigned int), and this works, but I could
imagine there are systems where this would be an unsigned char. (Not sure
if there are rules for this). So to be safe I cast ChessSquare to (signed char),
which should always work to make small negative ints assigned to it read
back as themselves.