add a new Lint check for map players
StyleCop
fix remaining errors spotted by new player lint check
Tackle the last of the low hanging fruit for memory allocations in the main game loop.

- Avoid calling string.Split twice in SprintFont.Measure.
- Change ActorsInBox method of ActorMap and ScreenMap to avoid allocating and intermediate list. As a bonus this allows the sequence to be lazily consumed. Also avoid LINQ in these methods.
- In FrozenUnderFog.TickRender, the method exits early if no players are visible so the attempt at lazy generation was not needed.
- Unwrap a LINQ Any call in ClassicProductionQueue.Tick.
- Merge some successive Where calls in ProximityCapturable into single predicates.
Move try-catch during creation of sequences into the function rather than around the lazy initialization.

This fixes an issue with VS breaking on the exception because it thinks it will go unhandled, even though it will be handled.
Properly save replay even when the game crashes (fixes #5610)
Merge pull request #5706 from Mailaender/lint-players

Added a new OpenRA.Lint check for invalid player definitions
Merge pull request #5731 from RoosterDragon/sequence-initialize-fix

Fix #5452
Merge pull request #5735 from pavlos256/always-save-replay

Properly save replay even when the game crashes (fixes #5610)
Merge pull request #5679 from RoosterDragon/main-loop-alloc

Reduce memory allocation in the main loop