Avoid reading rowgroup metadata in memory on the client side.

This will improve reading big datasets with a large schema (thousands of columns)
Instead rowgroup metadata can be read in the tasks where each tasks reads only the metadata of the file it's reading
it will matter if it is smaller than a block (see case just above). when there is a block boundary between min and max then we stop at the first block boundary.