Fix error in comment.
Make executor copying noexcept.
Add defer() function.

Initial implementation is a clone of post(), and does not yet take
advantage of the available optimisation when scheduling a continuation
of the current caller.
Merge simplified model from asio 'executors' branch.

Changes include:
- Nested work classes are gone, replaced with separate functions
  for work_started() / work_finished(). An RAII utility template
  executor_work<> has been added to manage work automatically.
- The make_executor function has been replaced with get_executor,
  which supports classes that have a nested typedef executor_type
  and a member function get_executor().
- Initial support for allocators as part of executor type requirements.
Fix tests.
Move chain() back to executor header.
Add codefer.
Add defer_at() and defer_after().
Merge execution_context changes from asio.
Change functions to take executors by const reference.
Rename to match implementation on asio 'executors' branch.
Change continuation_of to be like result_of.

The continuation_of trait is now called with a function signature
similar to result_of, i.e. continuation_of<F(Args...)>.