archive: Retry operations that return ARCHIVE_RETRY

Retry operations that return ARCHIVE_RETRY since it indicates that the
operation has failed, the archive_entry is not valid, and the operation
should be retried to see if it succeeds.

This fixes a segfault on a truncated archive where
archive_read_next_header would return ARCHIVE_RETRY and the backend
would continue to try and use the invalid archive_entry that was
returned.

https://bugzilla.gnome.org/show_bug.cgi?id=735120