Split BaseArchiveFile and ZArchive into their own self-contained source files