Fixes #15028: Make DataContractJsonSerializer honor EmitDefaultValue during serialization.

This should work for both reference and value types. Together with tests (thanks to Jon Goldberger).
I ran this test on .NET and the original version passed, so this change isn't correct.