Issues/291 change processor error handling

- Implements SPChangeProcessor Unit Test.
- Minor code style update.
- Updated ErrorHandler API: We're now capturing errors triggered while processing remote diffs.
- Implemented new RemoteChange Error Handler. Sequence is as follows:

```
1. Request the full entity
2. Calculate Delta: LocalGhost > LocalMembers
3. Load the full Remote Member Data
4. If the delta from step (2) is not empty, then let's attempt to rebase + apply localDiff
4.1. Calculate Delta: LocalGhost > RemoteMembers
4.2. Transform localDiff: LocalGhost >> RemoteMembers >> LocalDiff (equivalent to git rebase)
4.3. Attempt to apply the Local Transformed Diff
5. Update the ghost with the remote member data + version
```
Since you've done some stylistic cleanup, might want to also make `applyDiff:to:error:` more consistent with `diffFromDictionary:toObject:` e.g. `applyDiffFromDictionary:toObject:error:`. (Hmm, looking forward to Swift).