code: public static <T> Ix<T> defer(IxSupplier<? extends Iterable<? extends T>> factory) {
          return new IxDefer<T>(nullCheck(factory, "factory is null"));
      }
docs: Defers the generation of the actual Iterable till the iterator() is called on
  the resulting Ix.
  <p>
  The result's iterator() forwards the remove() calls to the generated Iterable's Iterator.
  @param <T> the value type
  @param factory the function that returns an Iterable when the resulting Ix.iterator() is called
  @return the new Ix source
  @throws NullPointerException if factory is null
  @since 1.0