Resolve conflicts in favor of the upstream side where possible.
Resolve a logical conflict in archive_windows.h where the upstream
port to Watcom was done slightly differently from ours.
We cannot suppress PGI compiler warnings completely because even with
the "-w" flag the compiler still writes a message containing "compilation
completed with warnings" to stderr.
A warning is triggered by expressions like
test ? NULL : ptr_to_const_char
test ? ".." : ptr_to_const_char
that the PGI compiler handles incorrectly. It chooses the pointer type
of the first option (either void* or char*) and warns about conversion
of the second without a cast. Flip the expression logic to
!test ? ptr_to_const_char : NULL
!test ? ptr_to_const_char : ".."
to help the compiler choose the proper result type.
This allows for a built in bzip and zip capability, so external tools
will not be needed for these packagers. The cmake -E tar xf should be
able to handle all compression types now as well.