hacks: support symbolic links in .zip files

Add support for re-creating symbolic links when unpacking .zip files,
copying the complete implementation of ZipFile._extract_member() and
adding the needed modifications. As a safeguard to avoid following
symlinks when re-unpacking the same file, which could result in wrong
output, always unlink each destination file before creating it.

This is needed for newer versions of the Android NDK which e.g. link
"llvm-ranlib" to "llvm-ar" and a few others.

Originally reported at https://github.com/Igalia/wpe-android/issues/50

Part-of: <gstreamer/cerbero!877>
13 jobs for !877 with symlinks-zip-files in 121 minutes and 17 seconds (queued for 2 seconds)
merge request