GROOVY-6152: LazyList does not allow range access

Fixes the behavior described in GROOVY-6152 so that indexing negative, non-existent positions (with multiple indices, single index access and ranges) will not cause the ListWithDefault to grow, but to throw an AIOBE. In addition, whenever a sublist is returned (.e.g caused by a range index), the sublist type will be ListWithDefault with the settings from its parent list.