Add test for bug in adm-zip
Abstract implementation-specific zip library details into an adapter
Pull in node-zip library to unzip contents of test zip files

Rather than use adm-zip to both create and read the files, where
the bug doesn't manifest, use node-zip to read the zip content
instead. Also unzip the test files and check they are
not corrupted.
Use node-zip instead of adm-zip

This is just a stop-gap, as this still has the same corruption
issue as adm-zip.
Use archiver to create zip but test with adm-zip
Modify tests so zip file content is extracted and compared

Previously I was only checking entries in the zip file, which
was working correctly even if an individual file was corrupted
(as happened with adm-zip and node-zip).