1. WorkspaceModel now implements IUndoRedoRecorderClient and work with UndoRedoRecorder
2. DragCanvas now record models (through RecordModelsForModification) before it moves them