code: public static <E> Optional<E> maybeFirst(Iterator<E> iterator) {
          return new MaybeFirstElement<E>().apply(iterator);
      }
docs: Yields the first element if present, nothing otherwise.
  
  @param <E> the iterator element type
  @param iterator the iterator that will be consumed
  @return just the first element or nothing