code: function styledNameValues (nameValues) {
    let keys = nameValues.map(nameValue => nameValue.name)
    let keyLengths = keys.map(name => name.toString().length)
    let maxKeyLength = Math.max.apply(Math, keyLengths) + 2
    function pp (obj) {
      if (typeof obj === 'string' || typeof obj === 'number') {
        return obj
      } else if (typeof obj === 'object') {
        return Object.keys(obj).map(k => k + ': ' + cli.inspect(obj[k])).join(', ')
      } else {
        return cli.inspect(obj)
      }
    }
    function logKeyValue (key, value) {
      cli.log(`${key}:` + ' '.repeat(maxKeyLength - key.length - 1) + pp(value))
    }
    for (var nameValue of nameValues) {
      let value = nameValue.values
      if (Array.isArray(value)) {
        if (value.length > 0) {
          logKeyValue(nameValue.name, value[0])
          for (var e of value.slice(1)) {
            cli.log(' '.repeat(maxKeyLength) + pp(e))
          }
        }
      } else if (value !== null && value !== undefined) {
        logKeyValue(nameValue.name, value)
      }
    }
  }
docs: styledNameValues logs an array of {name: '', values: ['']} objects in a consistent style
  
  @example
  styledNameValues([{name: "Collaborators", values: ["user1@example.com", "user2@example.com"]},
  {name: "Name", values: ["myapp"]}])
  Collaborators: user1@example.com
  user2@example.com
  Name:          myapp
  
  @param {nameValues} nameValues
  @returns {null}