- Baadia refactored: new DiagramDocument class is responsible for the undo stack (rather than DiagramControl) and Shapes consider DiagramDocument to be their Parent.

- Added helper interfaces and classes for managing parent/child relationships: IChildOf<TParent>, IListChanging<T>, ChildOfOneParent<TParent>, OwnedList<T>, ChildList<TParent,T>, OwnedChildList<TParent,T>.