code: public static <T> AsyncDataFetcher<T> async(DataFetcher<T> wrappedDataFetcher, Executor executor) {
          return new AsyncDataFetcher<>(wrappedDataFetcher, executor);
      }
docs: A factory method for creating asynchronous data fetchers and setting the
  {@link Executor} they run in so that when used with static imports allows
  more readable code such as:
  <p>
  {@code .dataFetcher(async(fooDataFetcher, fooExecutor))}
  
  @param wrappedDataFetcher the data fetcher to run asynchronously
  @param executor           the executor to run the asynchronous data fetcher in
  @param <T>                the type of data
  
  @return a {@link DataFetcher} that will run the wrappedDataFetcher asynchronously in
  the given {@link Executor}