增强 fail 和 done 方法

1. fail 的handler能获取到 emit('error') 时附带的所有参数
2. done 和 group 支持抛出所有参数到 error 事件中
3. done(arg, cb) 中, 除非 cb确实返回了参数, 否则不替换原来的args