The code which gets the "representation" object ready for the data source's targetObject method is expensive, and the argument is ignored in a non-CoreData situation.  To speed up other code, add a new data source method which is the same except does not provide the representation, in case the data source can respond without it.  If it cannot, we fall back to the previous behavior.  Even CoreData situations can be helped if there is a non-CoreData mapping involved.
parentObjectForRelationshipMapping: was being called twice; once to obtain the destinationObject, and once in the subsequent call to mapNestedObject.  Just create once and pass to both methods.  Also, it was being created once per loop in a to-many situation; it only needs to be created once.  Also, speed up parentObjectForRelationshipMapping: a little bit.
Merge pull request #2076 from carllindberg/2065-FasterDestinationObject2

Speed up getting a target object