Fix overlap of in-game UI elements when using low resolutions

Fixes #6579
Merge pull request #6584 from obrakmann/fix6579_lowres_ui_overlap

Fix overlap of in-game UI elements at low resolutions
Implement cell triggers. Closes #4400.
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.
Replace RemoveOnConditions with KillsSelf.

Upgrades offer more flexibility than prerequisites.
Detonate demo trucks when they are iron-curtained.
Merge branch 'celltrigger' into rangetrigger-prereqs
Merge branch 'upgrade-all-the-things' into rangetrigger-prereqs
Add WithRangeCircle trait for drawing arbitrary ranges.
Add range triggers.
Add UpgradeActorsNear trait for passive upgrades.
Add the stealth generator to TS.