Re-initialise the iterator for source on each call to the returned Iterable, allowing multiple calls to iterator()