Issue #1524: Refactor LazyIterable to allow a switching implementation.