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.
This patch allows users of RestKit to use the CoreData API for saving. I think it's fair to say that if it's going to advertise that it integrates with CoreData, that saving changes to CoreData doesn't require you to use RestKit's API for saving. That would be abstracting CoreData, not integrating with it.

If any existing product built on CoreData comes along and elects to use RestKit to sync with a web service, I think it's reasonable that RestKit not dictate how data is persisted to disk if possible. This change makes that possible.