Fix dangerous usage of error pointer

error ISN'T a NSError* with __block storage.
error IS a pointer to an NSError __autoreleasing* with automatic storage.

So capturing error in a block does capture a pointer to an object with automatic storage duration (on the stack). As the block will be executed asynchronously, dereferencing error would refer to an object outside of its lifetime, which is undefined behavior.
Fixes backwards notifications for values and relationship notifications.
Post notification for AFIncrementalStoreContextWillFetchNewValuesForRelationship.
Refresh destination object when an insert fails, prevent dangling relationships.
Don't try to insert a nil object to the array.
Skip relationships that are fault when updating backing object with managed object

We can safely assume relationships that are fault were not modified
Merge pull request #223 from baarde/skip_fault_relationships_update

Skip relationships that are fault when updating backing object with managed object
Merge pull request #221 from Spaceman-Labs/bugs/dangling_relationship

Prevent dangling relationships when an insert save fails
Minor refactoring
Merge pull request #220 from Spaceman-Labs/bugs/notifications

Fix reversed context notifications
[Issue #217] Using backing object ID cache
Merge branch 'master' of https://github.com/AFNetworking/AFIncrementalStore
[Issue #212] Reverting to use of constant value for incremental node, rather than absolute time
[Issue #109] Prevent records from being requested excessively
Removing manual context merge from notification center observer
Removing another manual context merge from notification center observer, which had caused infinite loop of relationship fetching
Merge pull request #213 from baarde/master

Fix a dangerous usage of error pointer
Merge branch 'master' of https://github.com/AFNetworking/AFIncrementalStore
Bumping version to 0.5.1