The scan framework is a new set of functionality, based on the result set loader, which is in turn based on the row set abstraction. The scan framework handles things like batch sizing, projection, null columns, implicit columns and more.
Earlier commits added the basics. This PR refines the framework based on the work needed to port the CSV (actually, the "compliant text reader") to the framework. To keep PRs of reasonable size, this PR includes only the framework changes, the actual revised reader will be in a separate PR.