progress display: sanitize negative size deltas

libcurl and librepo use the progress callback also when downloading
http headers, and there's no simple way to turn this off. When headers
end, the current file offset returns to zero, and this may confuse
the rate estimator.  Make sure that size deltas are always positive,
otherwise don't update the rate estimate.
progress display: handle 100% case better

Instead of clamping 100% to 99% to save one char, just steal the
preceding space. It's simpler and looks better anyway.