Allow @async to be run synchronously

This is done by returning a FakeFuture that is not the result of submitting the
work to an executor but returned directly.
Add nose plugin to disable asynchronous execution