use intersection of property keys

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

See issue #307 for discussion.