docs: public static <T> CompletableFuture<List<T>> allOf(List<CompletableFuture<T>> futures) {
      return AtomixFuture.wrap(CompletableFuture.allOf(futures.toArray(new CompletableFuture[futures.size()]))
          .thenApply(v -> futures.stream()
              .map(CompletableFuture::join)
              .collect(Collectors.toList())));
    }