Validate object graphs for cycles in composites on first commit

Also fix a bug that was breaking validation of COObject instances in relationships when there's no user-supplied subclass.
Rather than creating a custom entity description just for testing this behavior, why not reuse Folder, Tag or OutlineItem that model a similar composite relationship?