code: public final <R> Ix<R> lift(IxFunction<? super Iterator<T>, ? extends Iterator<R>> lifter) {
          return new IxLift<T, R>(this, nullCheck(lifter, "lifter is null"));
      }
docs: Calls the given lifter function with the iterator of this sequence and emits
  elements of the returned Iterator.
  <p>
  The result's iterator() forwards the remove() calls to the returned Iterator.
  @param <R> the result value type
  @param lifter the function that receives the Iterator of this and returns an Iterator
  that will be consumed further on
  @return the new Ix instance
  @throws NullPointerException if lifter is null
  @since 1.0