code: public <S extends T> S get(String name, Class<S> c) {
          return (S) get(name);
      }
docs: Convenience method that allows specification of return ISetting type so that you can nest the call to
  access the setting value.
  
  <pre>{@code
  SettingManager manager = ...;
  manger.add(new BooleanIOSetting("Setting", ...));
  
  if(manager.get("Setting", BooleanIOSetting.class).isSet()){
  // do something
  }
  
  }</pre>
  
  @param name name of the setting to retrieve
  @param c    the class of the setting (matching generic return type). This is need
  as due to type erasure we don't know the class of 'S' at runtime
  @param <S>  type that will be return
  
  @return instance of the setting
  
  @see #get(String)