Update to progressbar >= 3.0
When progressbar was forked and rewritten, several API changes were made. Those were only partially adapted here in diffoscope - due to lack of sufficient tooling to detect those differences at the time, as known compile errors were fixed.
Hence, this part of the code base didn't work for over 6 years - the updates introduced here are still compatible with the release of the rewrite as v3.0. A compatibility_mode is provided for progressbar 2.5, as it is still available on Debian.
The two relevant commits in progressbar are python-progressbar@12df6a and python-progressbar@a1fc83, which are included in 3.0.
One notable change is the removal of self.bar.start() in the setup. The change works, as the progressbar calls start automatically if there hasn't been one defined. Starting the progressbar within the setup, however, is problematic because the starting time is set there. At setup time, this time is in localtime - only later is the time set to UTC yielding wrong time differences which can even be negative. Letting progressbar start the timer is therefore both more convenient and correct.
Fixes #360 (closed) and #353 (closed)
cc @lamby