Unmake castling moves

Add move flags for king and queen-side castling, as well as for RxK
castling. This greatly simplifies unmake for castling moves.
Add from/to_holdings functions to board

Update holdings when a piece is dropped on the board upon makemove.
Unconditionally clear the init bit when a square is cleared.

Cannot use clear_bit, since that asserts that the bit is set. Use an
and-mask instead.
Quick make/unmake move tests

Test normal move+gate, castle moves+gate.
Fix assert() in decode_move to accept NB_PIECE as valid

NB_PIECE as new_piece means that the move is not a gating/promotion move,
so it needs to be accepted.