Fix session management with preloaded windows

Session management stopped working corectly with preloaded windows when Konqueror was ported from having many application instances to a single application with many windows. The session management code wasn't changed accordingly, which caused preloaded windows to be restored as full windows.

To correctly exclude preloaded windows from session management, we use KMainWindow::saveGlobalProperties to store the indexes of preloaded windows and KMainWindow::readGlobalProperties to read them back, so that we know which windows should not be restored.

This commit also refactors much of the startup code, moving it from main() to KonqApplication.

BUG: 450624

Merge request reports