Made all tests pass (few copy related tests remain broken).

Factored +sharedInstanceForObjectGraphContext: in ETUIObject.

Fixed shared instance management, to ensure these instances are correctly recreated if -[COObjectGraphContext discardAllChanges] is called.

Changed test suite to call -discardAllChanges on every test object initialization, and avoid accumulating garbage in the transient object graph context.

Fixed over-release issues in -copyToObjectGraphContext:.

Improved model descriptions for ETLayout and some subclasses.
Switched to the relationship cache for ETLayout.layoutContext.

Still needs some serious polishing.

Note: Added ETLayout.contextItem and ETPositionalLayout.contextLayout properties in the process, since the metamodel doesn't support to create entities for protocols such as ETLayoutingContext.