Adding sync_data constructor and enqueue/dequeue.

The enqueue/dequeue are for the runnable tasks list, which is currently
held as a global variable. More importantly it is currently a non-concurrent
data structure.
Updating sync ops mostly.
Executor now uses the sync_data structure.
Adding missing 'use' declaration by the executor.
Use 2 executors, seems to work.

There may be some dataraces with the interaction with the notifier,
but it should be better now that there is the global sync_data with
concurrent data structures.