Fix drift when reusing lazy iterables for indexing
Fix drift when reusing lazy iterables for indexing

Phixes https://github.com/rakudo/rakudo/issues/1320

Currently, we .push-until-lazy before we begin checking whether
for existence of elements to know when to stop. However, this
causes a "drift" when the lazy iterable is reused as .push-until-lazy
reifies an extra element each time to figure out if it's still lazy.
The next time we re-use this iterable for indexing, that extra element
ends up being past end of the iterable we're indexing; with an extra
such element added on each reuse.

Fix by checking if iterable is lazy and checking all positions for
existence for such iterables each time.

Gnouc/rakudo,tbrowder/rakudo,tony-o/rakudo,tbrowder/rakudo,softmoth/rakudo,tbrowder/rakudo,MasterDuke17/rakudo,labster/rakudo,tbrowder/rakudo,salortiz/rakudo,rakudo/rakudo,MasterDuke17/rakudo,nbrown/rakudo,softmoth/rakudo,Gnouc/rakudo,lucasbuchala/rakudo,softmoth/rakudo,rakudo/rakudo,tony-o/rakudo,tony-o/rakudo,nbrown/rakudo,tony-o/rakudo,MasterDuke17/rakudo,nbrown/rakudo,salortiz/rakudo,Gnouc/rakudo,Gnouc/rakudo,lucasbuchala/rakudo,salortiz/rakudo,labster/rakudo,nbrown/rakudo,labster/rakudo,lucasbuchala/rakudo,lucasbuchala/rakudo,rakudo/rakudo,tony-o/rakudo,rakudo/rakudo,salortiz/rakudo,labster/rakudo,nbrown/rakudo,softmoth/rakudo,nbrown/rakudo,rakudo/rakudo,softmoth/rakudo,labster/rakudo,MasterDuke17/rakudo,tbrowder/rakudo,Gnouc/rakudo,tony-o/rakudo,rakudo/rakudo,Gnouc/rakudo,salortiz/rakudo,MasterDuke17/rakudo,tbrowder/rakudo,salortiz/rakudo,labster/rakudo,MasterDuke17/rakudo,lucasbuchala/rakudo