Cleaned the loading of additional items a bit more

Documented exceptions raised by -setItemGraph: and -insertOrUpdateItems:.
Finished cleaning the loading of additional items.

-addItemsFromItemGraph:loadableUUIDs: now computes the main items first (remove additional items from the items passed in argument, and collect their owner items), then adds them with -addItem:.
This involves an extra loop, but makes the code a bit clearer, and ensure an object that uses multiple keyed properties won't be deserialized multiple times.

As a result, we can also easily pass the correct UUIDs to -finishLoadingObjectsWithUUIDs: (by excluding the additional item UUIDs unlike previously).