Fixes #15028: Make DataContractJsonSerializer honor EmitDefaultValue during serialization.

This should work for both reference and value types. Together with tests (thanks to Jon Goldberger).
please drop the `private` and add space before the opening parenthesis (same throughout the rest of the patch)