zgz: Don't hardcode /lib, avoid segfaulting on > 128 character paths
There were a number of issues with zgz:
* It had a fixed 128 (!) size limit on paths, and if we happened
to be installed into one longer than that, the program would
likely segfault.
* Calling exit(system()) is inefficient; we might as well just
execve() and avoid having a process just blocked in waitpid()
on another.
* We should honor LIBDIR, in order to support lib64-style "multilib"
as well as full Debian-style "multiarch".
Based on a patch from Colin Walters <walters@verbum.org>