Failed file transfers can be treated as successful by schedd/shadow #4328

When the FileTransfer object is invoked in non-blocking mode, the parent
process needs to be more careful in checking whether the transfer
succeeded.

First, only an exit code of 1 constitues success. Several types of
failure can result in other non-zero exit codes.
Second, when the parent reads the status update pipe, it needs to ensure
it's seen the final update message. It's possible to have an unread
in-progress update message in the pipe.