Added Dropbox File System, and submodule for the DropboxSDK. Not fully tested, but is compiling.
Updated DropboxSDK, and made Dropbox project a dependency of other projects.
Added new version for the event store model, so that the uniqueIdentifier property could be added to CDEStoreModificationEvent. The plan is to use this to track what events are in an incomplete state, and thereby detect crashes and other issues that would leave things in an invalid state.
Added methods to CDEEventStore to track incomplete event identifiers. It is stored in metadata.
Added unit tests for new incomplete event registration in CDEEventStore.
Added automatic persistent store migration options for certain Event stores in the framework.
Added checks for incomplete events when the CDEPersistentStoreEnsemble is initialised. If mandatory events are detected, the ensemble deleeches. If there are non-mandatory events, they are deleted.
Added tests for the initial check for incomplete events. All pass.
Changed the way the set of events included in a merge is determined. Previously, it would get the newly added events, and then add to those the events that are concurrent. Now we do that, but repeat the process, of adding concurrent events until there is no change. At that point, there are no events outside the set that are concurrent with events in the set.
Used the new incomplete-event registration in various parts of the framework to guard against crashes causing incomplete CDEStoreModificationEvents.
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.
Fixed a bug where deletions were being handled with a performBlockAndWait: in cases where the context is confined (has no private queue).
Found a failing test for ordered relationship syncs. Has to do with deletions.
Fixed a bug in ordered relationship sync. The global identifiers of objects already existing in an ordered relationship were not being retrieved, so they were not available in the object-global id map. This caused the global id not to be found for some objects when sorting the relationship, and different orders could result on different devices.

Fixed by adding the global ids of all objects that are already members of the ordered relationship, whether or not they are actively involved in the change.
Added an error code for when an exception is raised.
Replaced a usage of NSEnumerator with a enumeratorObjectsUsingBlock:
Changed mutable dictionary to a NSMapTable with weak keys for storing willSave data in CDESaveMonitor. This way, if a context doesn't get to didSave, and is dealloc-ed, the map data is cleaned up.
Idiomatic on iOS now will include the selected tag in any new notes.