Enforce minimum line widths

(Split of from PR #4533; the constant `MIN_WIDTH_FACTOR` is reduced slightly.)

With this PR there is quite a bit of movement in the test files. The changes fall into three different categories:
* Lines that were rendered so thin that they were almost invisible, are now easily visible.
* Lines that become *slightly* thicker.
To my eye this makes them look a lot better (and closer to the rendering of Adobe Reader), especially at lower zoom levels. 
* Lines that become slightly thinner. This only happens for "zero-width lines" and is because this patch now uses `this.getSinglePixelWidth() * MIN_WIDTH_FACTOR` for all lines.
Again this, to my eye, improves the visual quality.

Fixes #3316.
Fixes #4314.
Fixes #4567.
Fixes #5537.
Fixes https://bugzilla.mozilla.org/show_bug.cgi?id=843206.
Fixes https://bugzilla.mozilla.org/show_bug.cgi?id=870337.
Fixes https://bugzilla.mozilla.org/show_bug.cgi?id=944677.
Fixes https://bugzilla.mozilla.org/show_bug.cgi?id=1108563.
change to `if (this.cachedGetSinglePixelWidth === null) {`