In order to start building a cost-based optimizer, we need some statistics about data sources. The most basic statistic would be number of rows.
I propose that we add a Statistics struct that initially just makes a total row count available but that we can later extend to support more advanced statistics.
We can then add a method to TableProvider:
Statistics should be optional because not all data sources can provide statistics.