Call asio::spawn's handler on completion of the coroutine.
Use operator[] rather than operator(), to avoid potential confusion from
having basic_yield_context look like a function object.
Move spawn implementation to separate file.
Add async_result support to post() and dispatch() functions.
Move use_future implementation into impl directory.
Use operator[] rather than operator(), to avoid potential confusion from
having use_future look like a function object.
Exclude some things from generated documentation.