use intersection of property keys

This allows calling the mergeValueForKey:fromModel: method
instance with a subclass or superclass as the fromModel parameter;
only the property keys common to both models will be updated.