make mergeValuesForKeysFromModel: work with sub classes

This PR changes MTLModel's mergeValuesForKeysFromModel: method to only merge values for keys that are present in both the target model and the passed in source model.

This allows scenarios such as passing in a subclass to only update certain keys on the target model.

See issue #307 for discussion.