code: function asyncZip() {
      return asyncArray(when.apply(null, argsToArray(arguments)).chain(function (result) {
          return zip.apply(array, normalizeResult(result).map(function (arg) {
              return isArray(arg) ? arg : [arg];
          }));
      }));
  }
docs: Zips results from promises into an array.
  
  ```
  function asyncArr(){
  var ret = new comb.Promise();
  process.nextTick(ret.callback.bind(ret, [1,2,3,4,5]);
  return ret.promise;
  }
  
  comb.async.zip(asyncArr(), asyncArr()).then(function(zipped){
  console.log(zipped); //[[1,1],[2,2],[3,3], [4,4], [5,5]]
  });
  
  comb.async.array(asyncArr()).zip(asyncArr()).then(function(zipped){
  console.log(zipped); //[[1,1],[2,2],[3,3], [4,4], [5,5]]
  });
  
  ```
  
  
  @return {comb.Promise} an array with all the arrays zipped together.
  @static
  @memberof comb.async
  @name zip