constructor({ maxLength }, startingPoint = null) {
    this._combinations = [];

    this._maxLength = maxLength;

    if (startingPoint) {
      this._push(startingPoint);
    } else {
      this._push(new KeyCombination());
    }
  }
Creates a new KeyHistory instance
@param {Number} maxLength Maximum length of the list.
@param {KeyCombination} startingPoint Initial state of first combination
@returns {KeyHistory}