Engine: Choose book move based on weight
More robust book handling
Fix typo: self.from_square -> move.from_square
is_legal: Forgot to check turn
Fix castling for problematic position
Correctly check occupancy for castling