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
TaskSideMetadata means the metadata is read on the tasks.
So it is using blocks to generate the splits.
CLiesntSideMetadata reads the rowgroups (metadata) on the client