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/CMakeLists.txt b/lib/CMakeLists.txt
index 441fba3..b8ad48f 100644
--- a/lib/CMakeLists.txt
+++ b/lib/CMakeLists.txt
@@ -55,12 +55,12 @@
 SET(LIBZIP_SOURCES
   zip_add.c
   zip_add_dir.c
+  zip_add_entry.c
   zip_close.c
   zip_delete.c
   zip_dirent.c
   zip_discard.c
-  zip_entry_free.c
-  zip_entry_new.c
+  zip_entry.c
   zip_err_str.c
   zip_error.c
   zip_error_clear.c
@@ -68,6 +68,8 @@
   zip_error_get_sys_type.c
   zip_error_strerror.c
   zip_error_to_str.c
+  zip_extra_field.c
+  zip_extra_field_api.c
   zip_fclose.c
   zip_fdopen.c
   zip_file_error_clear.c
@@ -84,9 +86,7 @@
   zip_get_archive_flag.c
   zip_get_compression_implementation.c
   zip_get_encryption_implementation.c
-  zip_get_extra_field_by_id.c
   zip_get_file_comment.c
-  zip_get_file_extra.c
   zip_get_name.c
   zip_get_num_entries.c
   zip_get_num_files.c
@@ -101,7 +101,6 @@
   zip_set_default_password.c
   zip_set_file_comment.c
   zip_set_file_compression.c
-  zip_set_file_extra.c
   zip_set_name.c
   zip_source_buffer.c
   zip_source_close.c
@@ -125,6 +124,7 @@
   zip_stat_index.c
   zip_stat_init.c
   zip_strerror.c
+  zip_string.c
   zip_unchange.c
   zip_unchange_all.c
   zip_unchange_archive.c