Add --add and --repack options

--add allows additional files to be added to an existing archive, or for
files within an archive to be updated. It is currently extremely
wasteful as the new/updated files are just appended to the end of the
archive along with a new copy of the central directory. There is no
attempt to reclaim the space taken by the old copy of the file at all.

--repack is originally for testing - to confirm my theory that the
random garbage in the central directory is just that - random stack
garbage.  It can be used to defragment an existing archive by writing a
new archive with no gaps, which is useful to reclaim the space wasted by
--add, but enough free space must exist to fit a second copy of the
archive. Even just running it over main.rs5 that ships with Miasmata
will save about 45MB.