Speed up repeated shifts of large lists/arrays by 70%+ .

This commit switches to using QRPAs for most List $!items and
ListIter $!rest attributes, and slightly changes the algorithm to
more eagerly move "safe" values from a ListIter's $!rest array
into its "parent" List.

As a result, repeated shifts like
    @a.shift while @a;
now run significantly faster than previously -- on my system,
a 50,000 element array is processed by the above in 2.5 seconds
instead of 9.0 seconds (72% improvement).

More improvements are coming; this patch just gets a couple of
the current big bottlenecks out of the way.