Fetching CVS repository data using rsync often fails with the following error
(especially with archived repositories hosted on sourceforge):
rsync error: some files/attrs were not transferred (see previous errors) (code 23)
It seems the only way to mitigate that issue is to retry the rsync command
until it succeeds.
```
(swh) anlambert@carnavalet:/tmp$ rsync -avz rsync://a.cvs.sourceforge.net/cvsroot/ojirc/ /tmp/cvsroot/ojirc/
receiving incremental file list
rsync: change_dir "/ojirc" (in cvsroot) failed: No such file or directory (2)
sent 8 bytes received 99 bytes 71.33 bytes/sec
total size is 0 speedup is 0.00
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1819) [Receiver=3.2.3]
(swh) anlambert@carnavalet:/tmp$ echo $?
23
(swh) anlambert@carnavalet:/tmp$ rsync -avz rsync://a.cvs.sourceforge.net/cvsroot/ojirc/ /tmp/cvsroot/ojirc/
receiving incremental file list
sent 34 bytes received 2,050 bytes 833.60 bytes/sec
total size is 487,994 speedup is 234.16
(swh) anlambert@carnavalet:/tmp$ echo $?
0
```
So add a rsync_retry decorator and apply it to a new method in the loader
wrapping the call to subprocess.run executing the rsync command.
Fixes [SWH-LOADER-CVS-D](https://sentry.softwareheritage.org/share/issue/eec7fc88cc314efb8746be48327ba6dc/) and [SWH-LOADER-CVS-J](https://sentry.softwareheritage.org/share/issue/910b9b8e4b7d4806abc7c2a4354ea373/).