code: private <T> Future<T> invoke(String methodName, Object argument, Class<T> returnType, Map<String, String> extraHeaders) {
  		return doInvoke(methodName, argument, returnType, extraHeaders, new JsonRpcFuture<T>());
  	}
docs: Invokes the given method with the given arguments and returns
  immediately. The {@code extraHeaders} are added to the request. The
  {@code Future<T>} object that is returned can be used to retrieve the
  result.
  
  @param methodName   the name of the method to invoke
  @param argument     the argument to the method
  @param returnType   the return type
  @param extraHeaders extra headers to add to the request
  @param <T>          the return type
  @return the response {@code Future<T>}