Obtain permanent NSManagedObjectIDs

I was running in to a bug where I was both inserting and updating a record before it was saved to the persistent store. The temporary IDs being used for prevention of merging changes in to the same child context that generated the change to begin with was failing, and the resulting merge-in was causing several NSFetchedResultsControllers to become inaccurate until performFetch: was called again.

These changes will attempt to ensure that any objectIDs being compared are permanent IDs, so that the comparison is accurate in this instance.
`- (BOOL)saveToPersistentStore:(NSError **)error` is a category that RestKit adds to NSManagedObject.

Any library that uses CoreData and not RestKit cannot call that method. Some projects break out layers and explicitly manage dependencies. While the top level project may set up the CoreData + RestKit stack, some of the lower layers shouldn't need to depend on RestKit - they should be able to depend only on CoreData's API. A practical example would be a UIViewController in it's own cocoapod that accepts an NSManagedObjectContext in its constructor, and save changes into that context.