Description
Revamp SchemaCapableIOProvider to SchemaIOProvider in anticipation of schema aware IOs, which do not require a data schema passed from the user. By adding in a requiresDataSchema boolean, the schema capable IOs for passed in schemas and the schema aware IOs which can infer the schema from the data structure can both be handled under the same interface.
Discussion about this change can be seen in the comments:
https://docs.google.com/document/d/1ic3P8EVGHIydHQ-VMDKbN9kEdwm7sBXMo80VrhwksvI/edit