Add Exts.ISqrt to avoid fp sqrt calculations.
this does not make any sense

with 0 HP you also can not a single dude
StyleCop
finished EmitCargoOnSell

closes #2424
replace EmitCargoOnSell with Cargo.EjectOnSell
let the harvester splatter Tiberium on destruction
check if palette.CurrentQueue is null to avoid a crash

fixes #5624
Reduce working set by releasing buffers for sheets.

Sheets carry a managed buffer of data that allows updates to be made without having to constantly fetch and set data to the texture memory of the video card. This is useful for things like SheetBuilder which make small progressive changes to sheets.

However these buffers are often large and are kept alive because sheets are referenced by the sprites that use them. If this buffer is explicitly null'ed when it is no longer needed then the GC can reclaim it. Sometimes a buffer need not even be created because the object using the sheet only works on the texture directly anyway.

In practise, this reduced memory consumed by such buffers from ~165 MiB to ~112 MiB (at the start of a new RA skirmish mission).
New Shellmap
spurious tab
add documentation
abort change owner when the actor is destroyed

fixes #5638
document the various overlay and animation change traits
don't capture dead actors
add a new lint check for invalid map cordons
Merge pull request #5712 from RoosterDragon/sheet-release-buffer

Release sheet buffers
Merge pull request #5795 from Mailaender/ts-harvester-tiberium-explosion

Added Tiberium explosions to destroyed harvesters in Tiberian Sun
Merge pull request #5794 from Mailaender/lint-map-cordons

Added a new Lint check for invalid map cordons
Merge pull request #5789 from Mailaender/render-trait-documentation

Documented the various overlay and animation change traits
Implement Format80 RLE compression