Use %appdir% var in FileArchive paths to make them relative to exe path

Also I thought we'd better use `QApplication::applicationDirPath()`
instead of `QDir::currentPath()` or something. As another lesson for the
previous commit, there are bugfixes and things that are usually
forgotten or left off until later, so we don't have a firm Begin/End for
a series of commits.
TransactionalFileOperator has more checks for transactions
Allocate modal dialogs on stack; it's okay.
FileArchiveManager add/remove functions make sure a file transaction is started.