The checking to set unchanged values is actually kind of expensive, especially for the non-CoreData situations (since calling -valueForKey will allocate objects for scalar properties) and it's rearely needed.  To speed things up, add a property on RKMappingOperation which indicates if the destination object came from a data source or not, then use that in the data source methods in order to determine whether to check for changed values.  CoreData will continue to use isTemporaryID for any managed objects, but we can now avoid checking for unchanged values in many cases.  Also, store the result from the data source once in the main method, instead of checking for every attribute.
Change getter method on new property to be "isNewDestinationObject" per PR comments.
RKMapperOperation has more duplicate code from RKMappingOperation than I realized.  So, I did need to expose the new property to that class to be consistent with it.
Merge pull request #2080 from carllindberg/2065-FasterShouldSetUnchanged

Always set unchanged values for newly-instantiated non-CoreData objects