Add `ModelMetadata.HasNonDefaultEditFormat` property and related fixes

- see individual commits and bug #844 for details

/cc @pranavkm
and all but DataType.Currency