Async executing context

This PR adds in a `AsyncExecutingContext`. It has the same interface as the `ExecutingContext` and should be a drop in replacement. However it uses `concurrency.futures` to execute asynchronously.

Tests are included in this PR.

This PR depends on my other open PR (https://github.com/enthought/codetools/pull/5)