configureOutput(configuration) {
    if (configuration === undefined) return this._outputConfiguration;

    this._outputConfiguration = Object.assign(
      {},
      this._outputConfiguration,
      configuration,
    );
    return this;
  }
The default output goes to stdout and stderr. You can customise this for special
applications. You can also customise the display of errors by overriding outputError.

The configuration properties are all functions:

    // change how output being written, defaults to stdout and stderr
    writeOut(str)
    writeErr(str)
    // change how output being written for errors, defaults to writeErr
    outputError(str, write) // used for displaying errors and not used for displaying help
    // specify width for wrapping help
    getOutHelpWidth()
    getErrHelpWidth()
    // color support, currently only used with Help
    getOutHasColors()
    getErrHasColors()
    stripColor() // used to remove ANSI escape codes if output does not have colors

@param {object} [configuration] - configuration options
@return {(Command | object)} `this` command for chaining, or stored configuration