processDirectory(path) {
    let that = this;

    return vfs.listDir(path).then(function(filenames) {
      return vow.all(filenames.map(function(filename) {
        let fullname = path + '/' + filename;
        return vfs.stat(fullname).then(function(stat) {
          if (stat.isDirectory() && that._shouldProcess(fullname)) {
            return that.processDirectory(fullname);
          } else {
            return that.processFile(fullname);
          }
        });
      })).then(function(results) {
        return [].concat.apply([], results);
      });
    });
  }
Processes directory recursively.

@param {String} path
@returns {Promise}