Add a heuristic to determine if we can skip merging a `NSManagedObjectContextDidSaveNotification` to avoid merging changes that are already available. refs #1351
Introduce additional experimental performance optimization. refs #1232

* Add `RKMappingOperatationDelegate` method to enable the data source to instruct the operation to skip performing value comparisons when assigning properties
* Add `RKMappingOperatationDelegate` method to enable the data source to instruct the operation to skip property mapping all together
* Add `modificationKey` attribute to enable the property assignment to be skipped when mapping entities that have not changed
Replace `NSRecursiveLock` with dispatch queue in `RKEntityByAttributeCache`. refs #1232
Sending a nil propertyClass to classForPropertyName results in putting a nil object in a inspectionCache causing an app to terminate.
Rework caches and connections to improve performance. refs #1232

* Eliminate redundant use observers across `RKEntityByAttributeCache` instances. Instead, `RKInMemoryManagedObjectCache` does all observing.
* Adjust caches to work primarilly off of `NSSet` of managed objects instead of single instances
* Rework caches to perform asynchronous cache management activities instead of blocking. Add `completion` blocks for callbacks on async activities.
* Switch `RKInMemoryManagedObjectCache` to use its own private context instead of the persistent store context to avoid potential deadlocks during async cache management
* Rework `RKRelationshipConnectionOperation` to handle an array of `RKConnectionDescription` objects instead of a single one. This reduces the amount of operations minted in proportion to the number of connections used.
Improve search indexing performance by batching objects into a single `NSOperation` instead of minting one per managed object to be indexed. refs #1232
Fix performance degradation related to iteration based key eviction
Merge remote-tracking branch 'origin/bugfix/1351-ghost-objects-in-merge-notifications' into feature/1232-improve-performance
Set a maximum operation count of 50 within the importer so that very large import operations do not die due to resource exhaustion
Apply a few small optimizations to the fetch request cache

* Optimize single identification attribute computation
* Replace `NSCache` with dispatch queue guarded dictionary
Merge branch 'feature/1232-improve-performance' into development