code: public static <T> Optional<T> accumulatePresent(final Monoid<T> reducer, final IterableX<Optional<T>> optionals) {
          return sequencePresent(optionals).map(s -> s
                                                   .reduce(reducer));
      }
docs: Accumulate the results only from those Optionals which have a value present, using the
  supplied Monoid (a combining BiFunction/BinaryOperator and identity element that takes two
  input values of the same type and returns the combined result) {@see cyclops2.Monoids }.
  
  <pre>
  {@code
  Optional<Integer> just = Optional.of(10);
  Optional<Integer> none = Optional.zero();
  
  Optional<String> opts = Optional.accumulateJust(Monoids.stringConcat,Seq.of(just, none, Optional.of(1)),
  );
  Optional.of("101")
  
  }
  </pre>
  
  @param optionals Optionals to accumulate
  @param reducer Monoid to combine values from each Optional
  @return Optional with reduced value