code: static KryoInstantiator reflect(Class<? extends KryoInstantiator> instClass, Config optConf)
      throws ConfigurationException {
      try {
        try {
          return instClass.getConstructor(Config.class).newInstance(optConf);
        } catch (NoSuchMethodException ex3) {
          return instClass.newInstance();
        }
      }
      catch(InstantiationException x) {
        throw new ConfigurationException(x);
      }
      catch(IllegalAccessException x) {
        throw new ConfigurationException(x);
      }
      catch(InvocationTargetException x) {
        throw new ConfigurationException(x);
      }
    }
docs: This instantiates a KryoInstantiator by:
  1) checking if it has a constructor that takes Config
  2) checking for a no-arg constructor