ListIter class
- Handles most iteration and reification tasks for lists
- generation of lazy values
- Iterable interpolation
- flattening of Parcels (if flattening)
- removal of Nil values
- eagerness/infinity constraints
- Has a low-level array ($!rest) of things not-yet-reified
- When ListIter.reify($n) is called
- * start shifting things from $!rest
- * build a Parcel of reified objects after interpolation/flattening
- * callback any parent "container" to store/process the reified objects
- * create a new ListIter to handle any remaining lazy part in $!rest
- * return the Parcel and new ListIter to caller