Windows portable bundle now offers to create a desktop shortcut on first
launch via a native yes/no dialog, remembers the choice in
~/.ga_desktop_settings.json (desktop_shortcut), and self-heals the .lnk
target to current_exe() on every enabled launch so a relocated bundle
keeps working.
Also add read_settings/merge_settings and route the three existing
settings writers through merge, so sibling keys (like desktop_shortcut)
are no longer clobbered by the python_path/project_dir rewrite.