editor: make save-before-exit dialog a child of mainwindow
editor: create recent-file setter

Lift the logic out of MainWindow::setCurrentFileName, so it can
easily be reused.
editor: support shrinking the recent-files list
editor: remove recent-files that fail to load