Refactored to use singleton game
Formatting tweaks
Better names
Extracted test helpers into separate expect module
More robust expect
UCI go command
UCI tests
Moved Repl() and Uci() to the core engine
Updated UCI tests
UCI stop
Added NewEngine(args...)
More straightforward UCI go command parsing
Fixed and variable UCI search limits
Added engine.uci boolean
Engine output and logging
Checkpoint, soft, and hard time limits
Search for best move on UCI "go" command
Fixed en-passant check evasion
Reset movegen head to zero after fetching all moves
More precise timer tick handler