Add smudges to TS weapons
Fix Laser Turret and Nod SAM Site selection bounds
Create a separate FrameCache for caching sprite frames.

We split the caching SpriteLoader into a SpriteCache and FrameCache. SpriteLoader instead becomes a holder for static loading methods.

Only a few classes loaded sprite frames, and they all use it with a transient cache. By moving this method into a new class, we can lose the now redundant frame cache, saving on memory significantly since the frame data array can be reclaimed by the GC. This saves ~58 MiB on frames and ~4 MiB on the caching dictionary in simple tests.
MCV no longer loses controlgroup when transforming
Fix the in-game widget hierarchy.
Add world desaturation to TD end-game menu.
fix syntax errors
Fix RenderGunboat wake animation
Merge pull request #6758 from RoosterDragon/fix-spriteloader-overcache

Create a separate SpriteFrameLoader for caching sprite frames.
Support changing owner from within scripted maps.
Use INotifyOwnerChanged for updating internal references.
Fix gdi01 landing craft unload waypoint
Fix gdi02 harvester not harvesting and more
Fix TD gunboat "turret" offsets
Merge pull request #6772 from reaperrr/wake-fix

Fixed RenderGunboat wake animation
Don’t crash if trigger callbacks throw exceptions.
Write Lua debug information to lua.log.
Fix smoke animation offset in TD and RA.
End the mission when a script error occurs.
Merge pull request #6774 from reaperrr/lst-wps

GDI01 and GDI02 fixes