Added an async_command decorator

Functions with the async_command decorator will be run inside an
AsyncCommandResult. The tests are passing but aren't really unit tests,
as they always run inside the async decorator.