* bmp2map: Assign unit IDs
* bmp2map: Check bitmap dimensions
* bmp2map, convert: Change random tree frame code
* convert: Insert values from src to ref, instead of vice-versa (more robust)
* convert: Move buildings is better
* convert: Small API changes
* convert/dumpunits: Correct rounding for tile position underneath a unit
* dumpunits: List player number for each unit
* Full Campaign reading/writing support
* Convert bitmaps to maps
* Command arguments reordering: input and output are always first
* Adapt usage of utils API
* Add commands to add and remove a pregame bitmap
* Add command help texts
* Calculate the palette length correctly in BitmapUtil
* Add some expected values
Additionally:
- Use a factory to create empty objects
- Move constants to Scenario class
- Scenario class is in serialization order
- Some refactoring
The code is untested, because DeflateStream does not write using Flush.