Row selection: building a parquet_slice and turning one into the explicit list of rows it
picks out. The per-kind copies that consume that list are generated into
parquet_tables_access next to the table's own %get.
Everything here is deliberately resolved LATE. A slice stores what it was asked for
(start, stop, step, or a list) and nothing about any particular table, so the open-ended
1: form means "to the end of whatever table you use me on" rather than "to the end of the
table that happened to exist when I was built". Validation therefore also happens at use, in
slice_resolve, which is the single place a row index is checked before anything indexes with
it.