code: function acceptParams(str, index) {
      var parts = str.split(/ *; */);
      var ret = {value: parts[0], quality: 1, params: {}, originalIndex: index};
  
      for (var i = 1; i < parts.length; ++i) {
          var pms = parts[i].split(/ *= */);
          if ('q' == pms[0]) {
              ret.quality = parseFloat(pms[1]);
          } else {
              ret.params[pms[0]] = pms[1];
          }
      }
  
      return ret;
  }
docs: Parse accept params `str` returning an
  object with `.value`, `.quality` and `.params`.
  also includes `.originalIndex` for stable sorting
  
  @param {String} str
  @return {Object}