docs: public final <T> void addOption(String name, String description, String exclusiveGroup, T defValue)
      {
          Option opt = new Option(name, description, exclusiveGroup, defValue);
          Option old = map.put(name, opt);
          if (old != null)
          {
              throw new IllegalArgumentException(name+" was already added");
          }
          if (exclusiveGroup != null)
          {
              groups.add(exclusiveGroup, opt);
          }
      }