Add some documentation
Factor out async/3 thread policy

There is currently only one thread policy.  There will be another soon.
Refactor spawn/1 in terms of spawn/2
Implement lazy/1