private void advance() {
    if (stale) {
      next = supplier.get();
      stale = false;
    }
  }
Adapts a {@link Supplier} that returns {@code null} when no items are left to an {@link Iterator} where
{@link #hasNext()} returns {@code false} when there are no items left.
planetiler-core/src/main/java/com/onthegomap/planetiler/collection/SupplierIterator.java