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
The naming is reversed?
I thought client side does not read row group information and use hdfs blocks to generate splits?
But in this code, it's the TaskSideMetadata who is using hdfs blocks?