code: function transform(neoRes, fn, keepHead) {
    // singleton, no map
    if (_.size(neoRes) == 1) {
      return transQRes(neoRes, fn, keepHead)
    } else {
      return _.map(neoRes, function(qRes) {
        return transQRes(qRes, fn, keepHead)
      })
    }
  }
docs: Format the entire neoRes into an array of qRes tables. Can be called multiply for sequential transformation. If neoRes has only one qRes, then returns the single transformed table.
  @param  {Array} neoRes Neo4j raw results, neoRes = [q0res, q1res, ...], or the transformed neoRes.
  @param  {Function|Array} fn A transformer function or many of them in an array
  @param  {Boolean} [keepHead=false] To drop the header or not.
  @return {Array}        neoRes as an array of qRes tables with transformed elements.
  
  @example
  var neoRes = [{"columns":["a"],"data":[{"row":[{"slack__profile__fields ...
  neoRes = transform(neoRes)
  // => [
  [{ slack__profile__fields__Xf0DAVBL83__alt: '',
  ...]
  ]
  
  // if supply a transformer
  function parseUser(userObj) {
  return _.pick(userObj, ['name', 'real_name', 'id', 'email_address'])
  }
  
  // second call in sequence, keep transforming
  // If neoRes has > 1 qRes table
  transform(neoRes, parseUser)
  // => [
  [{ name: 'alice',
  real_name: 'Alice Bloom',
  id: 'ID0000001',
  email_address: 'alice@email.com' },
  ... ]
  ]
  
  // If neoRes has 1 qRes table, return a non-nested result
  transform(neoRes, parseUser)
  // => [{ name: 'alice',
  real_name: 'Alice Bloom',
  id: 'ID0000001',
  email_address: 'alice@email.com' },
  ... ]