Wait is now a task result, allowing for implementation defined waiting (rather than mindless spinning).
Added support for executing a task asynchronously. Does not work with channels yet.
Added support for implementation specific locks.
Channels and signals now work in async mode.
Merge branch 'threaded'