realpath hygiene for external commands

For external commands which do not support the doubledash convention
(#2613), wrap file arguments in `Pathname.new(file).realpath` at the
very last minute.  This provides a guarantee against surprises caused
by unusual filenames which might be misinterpreted as flags.

If you follow the current code, the arguments altered by this patch all
*ought* to be absolute paths already (though not all of them are instances
of Pathname).  So, there is no functional change, only a safety rail
against future changes.

This patch covers the external commands `hdiutil` and `unzip`.