Adds ordered relationship support.
This involves:
 - Adding a movedIdentifiers dictionary to CDEPropertyChangeValue
 - Treating the relationship as an NSOrderedSet instead of an NSSet where needed
 - Storing the index of any new objects or index changes when storing ordered property changes
 - Adds a unit test that swaps two items in a relationship and ensures the ordering is sync’ed
Fixes an array index out of bounds bug updating an ordered property.
Basic Ensembles support.
Updated to produce the same order on all devices.  Drew’s description:

- Create a NSDictionary for all objects in the ordered set. The key is the global id, and the value is the initial index of the object before the reordering, ie, the original order before the change.
- Replace the dictionary values for the global ids that are moved with the new index.
- Sort the dictionary based on the index values. Where values clash, sort based on global id.

In practice there are a few more steps but the outcome is the same.
Added a (failing) test for consistent sync when confronted with changes on two devices simultaneously.
Switched to storing the indices for all items in an ordered set.  This gives consistent ordering in a conflict.
Merge branch 'master' of https://github.com/fdstevex/ensembles into ordered-rels
Cleaned up parts of the merged ordered-relationship code. Made a new property change type especially for ordered relationships, rather than just using the standard to-many type.
Cleaned up the ordered relationship tests a bit.