Rewrite Continuations

Continuations now support copy/move constructors and a lot fewer uses of
pointers. Multiple Continuations can point to a single Executor. There exists
only one Executor per function call, and it is shared between multiple
Continuations using a refcounter. Once all references to the Executor are
removed and dependencies resolved, the function call is pushed into the uv
event loop.
Port VFS to use continuations
Wrap spawn() in a continuation