Load end-game dialog only after game ends, not already when it starts

This is to ensure that statistics reflect the state at the end of the
game, not that from the start of the game.

Fixes #6547.
Cache chat conversations in the lobby and in-game

This preserves the chat content from the lobby and makes it available
in-game, and also makes all chat content available to the end-game
dialog.
Merge pull request #6555 from obrakmann/fix6547_global_chat

Add a chat cache
Don’t double-remove dead actors from the world.
Remove duplicated IronCurtainable rules.
Add a UnitUpgradeManager trait.

This introduces support for timed upgrades, starting with crate buffs.
Fix cloak upgrade expiration.
Reimplement iron curtain as a generic stat upgrade.
Add the invulnerability crate to RA.
Add a TimedUpgradeWarhead and initial TS EMP implementation.
Convert SelfHealing to upgrades.
Add self-healing for elite units.
Allow armaments to be enabled/disabled by upgrades.
Add a testcase for elite weapon switching.