Non-blocking condition variables

Condition variable implemented as a queue of continuations with optional
guards.

Continuation defined as boost::function (typically obtained with
boost::bind) with void return value.

Any use of new condition variables requires reworking function's flow,
usually by putting return statement right after wait call.
wip timer thread
wip loop main thre
wip uci input
Print debug output to std::cout only

Don't put it to sync_cout which is now reserved for API output.
REMOVE debug current pos
fu main loop
REMOVE? emscripten.h everywhere
wip

WARN: emscripten.h added, too late?
fix waiters
wip
fix ugly dbg