Non-blocking ThreadBase::wait_for_think_finished
Non-blocking ThreadBase::wait_for(bool&)
Break timer loop into continuations

Right now Timer loop is not useful at all as search algorithm won't
pause until it reaches non-time-based limits.  However it was an
infinite loop which – in the absence of pthread – was completely
blocking the execution and had to be either removed or reworked.
Break main loop into continuations
Break search loop into continuations
Stockfish command line NodeJS-based runner
Asynchronous input processing
Customizable UCI output mechanism

Instead of writing it to cout, collect whole output in string stream and
emit it with overridable handler.
Disable some platform-specific behaviours

Depending on target platform or compiler, several optimizations
(including raw assembly language) could be inserted.  Disable them.
Print debug output to proper stream

Sync_cout no longer uses std::cout so that needed to be updated.
Problematic line removed from benchmark

Synchronous wait removed instead of reworking it.  Benchmark may be
broken now.
Demo: In-browser game player vs Stockfish