Make UndoDeleteLinkCommand parent of UndoAddLinkCommand

This means that the skip-on-first-run hack only needs to be put in a
single place (rather than mattering in both files)
Use App pointer for UI creation from within UndoLinkCommand