Adds an InstalledVersions table (schema v40) that records the first time
the user runs each app version (identified by GIT_HASH). On every app
start the current GIT_HASH is written to the table if not already present,
preserving the original install timestamp on subsequent launches.
The ChangeLog screen now reads the installed-versions map and injects
"Installed: HH:mm, d Mon YYYY" banners above each changelog entry whose
short git hash matches a recorded version. Closes#446.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>