ExecutionContext overloads of post, dispatch, and defer should use get_associated_executor()
Rather than calling the get_executor() member directly.
The ExecutionContext type requirements table should be updated to use get_associated_executor(x) rather than x.get_executor(). The requirement for having a nested typedef executor_type should be deleted.
The ExecutionContext overload of the make_work_guard function can be deleted.
The bind_executor function [async.bind.executor] should use get_associated_executor.
The AsyncReadStream and AsyncWriteStream requirements should use get_associated_executor(a) rather than a.get_executor().
[async.reqmts.async.io.exec] should use get_associated_executor() rather than calling get_executor member.
Affects [async.reqmts.executioncontext], [async.post], [async.dispatch], [async.defer], [async.make.work.guard], [buffer.stream.reqmts.asyncreadstream],[buffer.stream.reqmts.asyncwritestream], [async.reqmts.async.io.exec].
Depends on #226.