we need design/Executor.adoc explaining the rationale for each aspect of the executor concept. In particular that the work counting members are public to allow work guards to wrap any executor, including user-authored ones. store a work guard object in the promise so destruction is automatic even if the coroutine is destroyed without resuming.