Promise like syntax for async.waterfall