code: public CompletableFuture<Object> putAsync(@DelegatesTo(HttpConfig.class) final Closure closure) {
          return CompletableFuture.supplyAsync(() -> put(closure), getExecutor());
      }
docs: Executes an asynchronous PUT request on the configured URI (an asynchronous alias to the `put(Closure)` method), with additional configuration
  provided by the configuration closure.
  
  [source,groovy]
  ----
  def http = HttpBuilder.configure {
  request.uri = 'http://localhost:10101'
  }
  def result = http.putAsync(){
  request.uri.path = '/something'
  request.body = 'My content'
  request.contentType = 'text/plain'
  }
  ----
  
  The configuration `closure` allows additional configuration for this request based on the {@link HttpConfig} interface.
  
  @param closure the additional configuration closure (delegated to {@link HttpConfig})
  @return the {@link CompletableFuture} containing the future result data