parallel pondering beginnings
stop tracking unexplored_moves, fully expand nodes immediately and use the lockless algorithm by Enzenberger & Mueller
safely forget about parts of the persistent mcts tree that are no longer relevant
Merge branch 'feature/parallel-pondering' into develop
State::unmake_move
legal move generation, ridiculously factored but with potential for speed
big refactoring; separate attack generation and move generation so that move generation can take state
faster random moves
Merge branch 'feature/propagate-king-captures' into develop
print mcts statistics more elaborately, include principal variation
guarantee immediate king captures with fast random pseudolegal moves
extract State::can_castle()
replace attack info vector crud with statically initialized const arrays
State::their_king_in_check -> State::their_king_attacked, introduce State::in_check
stalemate
state consistency checks
ensure board is output in the right orientation
compute State::winner() correctly in legal and pseudolegal cases (hopefully)
check consistency in mcts rollouts
ensure board is output in the right orientation, the sequel