Support asynchronous actions

Enable actions to be asynchronous, by accepting a `done` callback à la Mocha.