code: function filterPackages(packages, filterFn, callback) {
    var results, next;
  
    results = [];
    next    = after(packages.length, function(err) {
      // the final callback gets called after all the functions have been executed
      callback(err, results);
    });
  
    packages.forEach(function(packageInfo) {
      filterFn(packageInfo, function(err, ok) {
        if (!err && ok) {
          results.push(packageInfo);
        }
  
        next(err);
      });
    });
  }
docs: Filters the packages using an async function that gets called with
  the packageInfo && callback params. The callback takes two arguments:
  an error param and a boolean value (condition matched or not)
  
  @param {Object} packages - contains packages info from NPM registry
  @param {Function} filterFn
  @param {Function} callback