Improve internal data structures.  New extra field API (read only).
Added paranoid mode to zipcmp (compare more meta data).

Keep up-to-date metadata for changed entries, avoid parallel arrays.
XXX: Modifying extra fields API functions are stubs.  Old API removed.
diff --git a/lib/zip_discard.c b/lib/zip_discard.c
index 16cc3d8..29aa25e 100644
--- a/lib/zip_discard.c
+++ b/lib/zip_discard.c
@@ -58,13 +58,12 @@
 	fclose(za->zp);
 
     free(za->default_password);
-    _zip_cdir_free(za->cdir);
-    free(za->ch_comment);
+    _zip_string_free(za->comment_orig);
+    _zip_string_free(za->comment_changes);
 
     if (za->entry) {
-	for (i=0; i<za->nentry; i++) {
-	    _zip_entry_free(za->entry+i);
-	}
+	for (i=0; i<za->nentry; i++)
+	    _zip_entry_finalize(za->entry+i);
 	free(za->entry);
     }