Handle DataContract in enum types

When an enum type has a [DataContract] annotation, use the specified
values from the EnumMember annotations when reading/writing Json and
JSV.
See  #337.