Initial cut of an asynchronous manhole, allowing for interactive
sessions in running asyncio services.

Still needs lots of automated testing, and probably a threaded version as well.
Add a threaded interpreter, for situations where you need to ensure
service isn't interrupted.

Say you do `while True: pass` in a manhole - you've just trashed your
eventloop, and restarting the process is the only option. With the
ThreadedInteractiveInterpreter, you'll have a thread that thrashes the
CPU, but at least the event loop will keep running.

Of course, this means that redirecting stdout can get pretty ugly, given
we're doing it across threads - the timeout on this at least ensures
that the redirection won't be permanent if something goes wrong in the
thread.
Make it clear why we're attempting a fallback compile.
Make aiomanhole's behaviour more consistent with the traditional REPL when storing previous results.
Document more unobvious behaviour.
Refactor the code. Much nicer with many small methods.

Also make the command_timeout parameter only apply to ThreadedInteractiveIntepreter.
Don't share dangerous interpreter state between clients.

You could have one client define a function in the middle of another
client's function. Fun times.

As a result, there's a new option for sharing the namespace between
clients. You could play pong!