Define a consistent interface for sprite loading. Fixes #4176.
Make terrain tiles ISpriteSources.
Change Utility --png to accept all ISpriteSources.
Update Utility --shp to match.
Fix D2 shp parsing and make it a proper frame source.
Clean up ShpReader code.
Clean up ShpTSReader code.
Load terrain from any SpriteSource.
Update CHANGELOG.