Code cleanup and debug.

Various cleanups:

- @pkg_info was never used.  Removed.
- Simplified getting the list of files slightly.
- Used list form of system().  This prevents shell interpretation of command and arguments, preventing bugs.  (And solves one.)
- Changed $! (OS_ERROR) to $? (CHILD_ERROR) after system() calls to get the error from the external program.  (Note that $? is the numeric return code from the child program.)
- Allow script to continue after finding some of the files have been removed previously.
- Convert 'warn "…"; exit 1;' to 'die "…";', the more common equivalent idiom.
- Convert 'exit 0;' to 'exit;', to be more clear we are not exiting abnormally.

Signed-off-by: Daniel T. Staal <DStaal@usa.net>