code: function () {
          var args = Array.prototype.slice.call(arguments);
          args.unshift(Header);
          return new (Header.bind.apply(Header, args))(); // eslint-disable-line prefer-spread
      }
docs: /* eslint-disable jsdoc/check-param-names 
  Create a new header instance
  
  @param {Header~definition|String} [value] - Pass the header definition as an object or the value of the header.
  If the value is passed as a string, it should either be in `name:value` format or the second "name" parameter
  should be used to pass the name as string
  @param {String} [name] - optional override the header name or use when the first parameter is the header value as
  string.
  @returns {Header}