Set the initial pieces more explicitly.
`canCaptureKing` and `legalAndIllegal` become nested functions in `leaves`
Moved canCaptureKing to companion object.
Store isCheck on the Board.
Split move/promotion leaf generation from castle leave generation.
Split leaf generation for each piece type and move type (e.g., knights, pawn captures, pawn advances).
Reordered nested functions in leaves.
Rewrote isCheck to not recheck offsets already checked.