Add support for SkyRoads compression/decompression

No tests yet.
SkyRoads: Use correct field for file size (stored vs real)
Completely rewrite test code

The archive test code is now much better structured as a set of classes (one
per format) rather than a mess of precompiler directives.
Cosmo: Minor fixes for empty archive handling
New test: set filename extension to < 3 chars