Make progress bar truly proportional

The original progress bar code resulted in a minimum bar width of 2%
if at least one port in that category failed.  With a run of 20,000 ports,
a single port failure looks like a failure of 800 ports.

This changes the logic such that a single port failure in a 20k bulk build
is represented by only a single line of pixels, which is only 0.2% of the
area of the progress bar.

In a real example of 7377 ports, there were 17 failures, 5 ignores, and 2
skips.  Together those categories consumed 3 lines of pixes, leaving 497
pixes for built ports.  In reality, this should have been 498 pixels, but
the distortion of 1 pixel is far better than the loss of 13 pixels.  The
trunk implementation consumes a minimum of 1% (5 pixels) per category with
at least one failure, and there can be mathematical clashes since 98% was
chosen as the maximum size.  

This has multiple problems:
A) 98 + 1 + 1 + 1 = 101
B) In a perfect run, the penultimate package shows 98% complete, and the
last package jumps that to 100%

Perhaps this is personal preference, but this true-proportional logic looks
better and gives more accurate information.