Add API for getting/setting extra field data.

Doesn't parse the fields yet, just provides them to the library user.

Open points:
* cdir extra field entries are not changed
* heuristics for finding cdir should be adapted

Based on patch provided by Jono Spiro <jono.spiro@gmail.com> (with
minimal changes).

--HG--
branch : HEAD
diff --git a/lib/zip.h b/lib/zip.h
index 94ee69b..261e550 100644
--- a/lib/zip.h
+++ b/lib/zip.h
@@ -230,6 +230,8 @@
 ZIP_EXTERN int zip_get_archive_flag(struct zip *, int, int);
 ZIP_EXTERN const char *zip_get_file_comment(struct zip *, zip_uint64_t,
 					    int *, int);
+ZIP_EXTERN const char *zip_get_file_extra(struct zip *, zip_uint64_t,
+					  int *, int);
 ZIP_EXTERN const char *zip_get_name(struct zip *, zip_uint64_t, int);
 ZIP_EXTERN int zip_get_num_files(struct zip *);
 ZIP_EXTERN int zip_name_locate(struct zip *, const char *, int);
@@ -241,6 +243,8 @@
 ZIP_EXTERN int zip_set_default_password(struct zip *, const char *);
 ZIP_EXTERN int zip_set_file_comment(struct zip *, zip_uint64_t,
 				    const char *, int);
+ZIP_EXTERN int zip_set_file_extra(struct zip *, zip_uint64_t,
+				  const char *, int);
 ZIP_EXTERN struct zip_source *zip_source_buffer(struct zip *, const void *,
 						zip_uint64_t, int);
 ZIP_EXTERN struct zip_source *zip_source_file(struct zip *, const char *,