Add a cache for glyphs.

This reduces memory consumption for text heavy documents. I tested five
documents and saw hit rates ranging from 97.4% to 99.8% (most of the misses are
due to |width| varying even when |fontChar| matches). On two of those documents
I saw improvements of 40 and 50 MiB.

The patch also introduces the Glyph constructor, and renames the |unicodeChars|
local variable as |unicode| for consistency with the corresponding Glyph
property.
Introduce paintSolidColorImageMask command to handle 1x1 solid image masks

See https://github.com/mozilla/pdf.js/issues/4436 for details
Added TC for issue 4436
Sync pt-BR translations with l10n-mozilla-aurora
Merge pull request #4488 from alexandrevicenzi/syncptBRtranslations

Sync pt-BR translations with l10n-mozilla-aurora
Merge pull request #4474 from chriskr/draw-image-subpixel-support

Introduce paintSolidColorImageMask command to handle 1x1 solid image
Merge pull request #4453 from nnethercote/charToGlyph

Add a cache for glyphs