PopulateWithNonDefaultValues - handle nullables

For nullable properties, treat null as the default value, and any
non-null, including the default value of the underlying value type, as
non-default. Allows using PopulateWithNonDefaultValues to populate both
true and false values if the source property is a nullable boolean, for
example.
Merge pull request #752 from mmertsock/populate_nullables

PopulateWithNonDefaultValues - handle nullables