This adds a zipArchiveShouldUnzipFileAtIndex, which is called before
each call to zipArchiveWillUnzipFileAtIndex, allowing a delegate to
cancel the unzip progress.
Before, the library resolved symbolic links that are relative
into absolute paths, using the current working directory of the process
that's doing the unzipping, which to me seems pretty wrong.
This was due to using -[NSURL fileURLWithPath:], which transforms
relative URLs to absolute URLs automatically.
I don't see much of a reason to use NSFileManager here, so I made that
use symlink() directly. Alternatively, one could also use -[NSURL
URLWithString:].
This keeps relative symlinks relative after unzipping.