Fix a crash when a collection of heterogeneous managed objects is mapped

If there are multiple key path components and `mappingResultsAtRootKey` is a collection
of heterogeneous objects (that is, they have different properties), calling
```objc
[mappingResultsAtRootKey valueForKeyPath:myKeyPath]
```
will crash because not all objects in the collection are KVC compliant for `myKeyPath`.

Therefore, we enumerate all objects in `mappingResultsAtRootKey`, and *if the object is
KVC-compliant for the requested key path* we add it to the `sourceObject` collection.
Otherwise we ignore it by swallowing the exception.