Rethink concurrency library

This makes some simplifications and exposes a slightly lower-level API which might be valuable in certain circumstances.  It's also the basis for the spawn/1 and lazy/1 macros.