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
Seems the maxSplitSize really doesn't matter in the logic of this code, since it will always split at nextBlockMin