static max(...dateTimes) {
    if (!dateTimes.every(DateTime.isDateTime)) {
      throw new InvalidArgumentError("max requires all arguments be DateTimes");
    }
    return bestBy(dateTimes, (i) => i.valueOf(), Math.max);
  }
Return the max of several date times
@param {...DateTime} dateTimes - the DateTimes from which to choose the maximum
@return {DateTime} the max DateTime, or undefined if called with no argument