Port of caolan/async to Q