Removes top-level let trayInstance, opts, currentTitle, currentArtist
and the top-level buildMenu function. All mutable state and buildMenu
now live inside the createTray closure. Public API and behaviour are
unchanged.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>