code: public <G, ERR> OrFuture<G, ERR>
    firstCompletedOf(Iterable<? extends OrFuture<? extends G, ? extends ERR>> input) {
      OrPromise<G, ERR> promise = promise();
      input.forEach(future -> future.onComplete(promise::tryComplete));
      return promise.future();
    }
docs: Returns an OrFuture that will complete as soon as the first OrFuture from the given Iterable
  completes.
  
  @param input an Iterable of OrFutures
  @param <G> the good type of the future
  @param <ERR> the bad type of the future
  @return the first future to complete