This is for a few updates to the original PR for basic ML import/export in
- The original PR diverges from the design doc in that it does not include the Spark version or a model format version. We should include the Spark version in the metadata. If we do that, then we don't really need a model format version.
- Proposal: DefaultParamsWriter includes two separable pieces of logic in save(): (a) handling overwriting and (b) saving Params. I want to separate these by putting (a) in a save() method in Writer which calls an abstract saveImpl, and (b) in the saveImpl implementation in DefaultParamsWriter. This is described below: