Get undo/redo somewhat working. Re-structured DiagramDialog so that DiagramController does all the work and the dialog just makes calls to the controller. Undo/redo has issues with selected elements ghosting and relationships not re-attaching to classes correctly.