Use the existing SpriteLoader cache for tilesets.
Use SpriteLoader for frame exporting.
Remove --transpose utility command.

The engine has supported transposed sprites for a long time now.
Add plumbing for mod-defined sprite loaders.
Move ShpTD sprite loading into Mods.Common.
Move ShpTS sprite loading into Mods.Common.
Move R8 sprite loading into Mods.D2k.
Move TmpRA sprite loading into Mods.Common.
Move TmpTD sprite loading into Mods.Common.
Move TmpTS sprite loading into Mods.TS.
Move ShpD2 sprite loading into Mods.Common.
Remove the remaining legacy sprite plumbing.
Support tmp(ts) templates with empty tiles.
Fix the legacy map editor.
Fix some bogus cell accesses in Map.
editor: Fix a benign loop-variable-inside-closure issue

The getter is accessed exactly once, at call time.
The setter is stored, and invoked later on losing focus, but we pass a
bogus one anyway, so there is no issue.
filesystem: Fix benign use of loop variable in closure

This closure never outlives a single loop iteration.
LevelUpCrateAction: fix loop variable in closure bug

This was a real bug -- if there were multiple recipients, we'd apply the
levels N times to the last recipient rather than once to each.
PrimaryBuilding: Fix benign loop variable in closure hazard

This never outlived a single loop iteration.
WithMuzzleFlash: fix loop variable in closure hazard

This fixes a real bug -- if the actor had multiple armaments, we'd end
up placing the muzzle flashes all based on the offsets of the last one.