fix most movegen bugs
The needle in the couphin is FRC castling. When a move captures a rook, we need to know if this rook is on its initial position for deciding whether to remove the corresponding castling right. Need to find a clean solution to this annoying problem.