Completely rewrite test code

The test code is now much better structured as a set of classes (one per
format) rather than a mess of precompiler directives.
Duke Nukem II: Expose map flags (parallax, earthquake, etc.) as attributes
Crystal Caves: Update tests for alt tile mappings
Tests: Allow supp data to be marked as "not written out when saving map"

This allows the Xargon test to pass because it doesn't overwrite the shared
tileset info when saving a map.