CDK-496: Added the type parameter to the Datasets API

I also went through and extended the use of the type parameter down to at least Avro files
and CSV files. In order to support Parquet and HBase, I think more work needs to be done
on the underlying stores. But if I missed something, I can get those in before the merge.
I like DataModelUtil. I'm not sure if they could just go into SchemaUtil. If anything, I'd prefer the name DataModelUtil if the functionality was merged. But I don't feel so strongly as to force the issue in either direction. I'll rename this to DataModelUtil for now and we can think about potentially merging later. It's an SPI class, so it should be safe to move in the future.