ENH:Supporting Unique ComponentItems
- Added the concept of Unique Roles
- ComponentItem now has a isValueValid method that bases validy on its current state as well as the uniquness of its role
- Split attribute construction from attribute building - this way Item::attribute() can be called safely
- Updated XML abd JSON to support unique roles
- Fixed ReferenceItem so it will unset its values (and therefore updating the resource's links) when teh item is deleted.
See Issue #277 (closed)