remove unnecessary sleep
Re-implement promise with a ConditionalVariable:

* no longer uses a queue
* get_with_timeout has been removed in favour of get with an explicit timeout arg
* timeout semantics are no longer idiotic - now uses conditional variable for blocking with timeout
Add missing fx docs
Improve printout of cue/sync/synced messages:

* All cue/sync/synced actions are now reported to GUI
* cue with pink background
* sync with orange background
* synced with blue background