cpdup(1): Some improvements.
* Make cpdup retry failed rmdirs after chflags. It already does this
for remove().
* When deciding whether to copy a file, cpdup should ignore the
UF_ARCHIVE file flag. If that flag is supported by the destination
file system but it's cleared on a source file, then multiple
invocations of cpdup would all copy the source file because its
flags wouldn't match. OTOH, if the destination filesystem doesn't
support UF_ARCHIVE, then there's no point in cpdup setting it.
Submitted-by: Will Andrews <will@firepipe.net>
Dragonfly-bug: https://bugs.dragonflybsd.org/issues/2987
https://bugs.dragonflybsd.org/issues/2988
https://bugs.dragonflybsd.org/issues/3067