Switch all bar calculation to fractions.

This is future-proofing for multiple-component status indicators.
Added a new test for bars with a progress of 0 and 1.
Fixed bars with a progress of 1 showing a full bar.
checkEnded() now uses global progress.