Avoid creating intermediate strings in sanitizeMetrics

This patch avoids creating many intermediate strings, when adding dummy width/lsb entries for glyphs where those are missing.
For the relevant PDF files in our test suite, the average number of intermediate strings are well over 1000.
Don't scale single-char text divs.

This change makes scrolling noticeably smoother on files with many
single-char text divs, such as the one in #1045. The trade-off is that
the visual appearance of text selection in such documents is slightly
worse, because more text divs overlap.

This change also uses `scaleX(N)` instead of `scale(N, 1)`. This might
be marginally more efficient in terms of JS string concatenation.
Merge pull request #5219 from Snuffleupagus/sanitizeMetrics-avoid-intermediate-strings

Avoid creating intermediate strings in sanitizeMetrics
Fix Zoom box resizing when it's hidden when the viewer loads (issue 5224)
Chrome extension: Isolate pageAction logic

Remove pageAction logic from extension router, and put it in a
separate file. The pageAction URL parsing logic has been simplified,
and all pageAction-related files have been moved to a separate directory.
Remove a duplicate PDF file from the test suite

The files issue3115.pdf and issue2337.pdf are identical, the only difference being that the first one is an `eq` test and the second one a `load` test. Hence there is no reason to keep the `load` test, since it's just a subset of the `eq` test.
Fix the placement of the findInput loading indicator in RTL locales

Currently in RTL locales, the loading indicator is placed such that it is in the way when entring a search term. Hence this patch moves it to the other side of the input field to fix this.
Merge pull request #5232 from Rob--W/crx-isolate-pageAction-logic

Chrome extension: Isolate pageAction logic
In src/display/api.js, add documentation for the |progressCallback| parameter in |PDFJS.getDocument|
Merge pull request #5240 from Snuffleupagus/api-progressCallback-doc

In src/display/api.js, add documentation for the |progressCallback| parameter in |PDFJS.getDocument|
Update document_properties.js

Fix for minutes tz calculation
Merge pull request #5242 from yscumc/patch-1

Fix for minutes tz calculation in document properties
Add getStats unit test

Since some Telemetry data depends on `getStats`, having a unit test should make it more diffucult to accidentally break this without noticing.
CCITTFaxStream parser: resolve xref if needed

Fixes #5243
Handtool: Remove focus from previous node on click

"This commit fixes the issue that a focused element cannot lose
focus when the draggable element is clicked."
https://github.com/Rob--W/grab-to-pan.js/commit/11c368f97cebe19

Steps to reproduce/verify:
1. Enable the hand tool (e.g. by using the H shortcut)
2. Click on the Page number input.
3. Click or drag the PDF canvas.
4. Observe that the page number input is still focused.
   Consequently, the hand tool cannot be disabled using the H shortcut.
Merge pull request #5237 from Snuffleupagus/fix-findInput-RTL-loading-indicator

Fix the placement of the findInput loading indicator in RTL locales
Merge pull request #5259 from Rob--W/handtool-unfocus

Handtool: Remove focus from previous node on click
Add basic support for ZapfDingbats
Add ZapfDingbats testcase
Merge pull request #5251 from Snuffleupagus/dingbats

Add basic support for ZapfDingbats