Attempt to display the File size quicker in the Document Properties dialog

Currently the File size field in the Document Properties dialog isn't set until `PDFView.pdfDocument.getDownloadInfo()` is resolved. If the Document Properties dialog is opened while a PDF file is loading with range requests, this leads to the less desirable situation where all fields *except* File size are available.

In cases where `PDFView.open()` is called with the `args` parameter defined, and `args` contains the property `length`, we actually know the File size when the PDF file begins to load. (This is usually the case when ranged loading is used in the Firefox addon/built-in version.)
Hence we can use `args.length` to set the File size immediately when `PDFView.open()` is called, resulting in a better user experience.
Merge pull request #5169 from Snuffleupagus/DocumentProperties-faster-fileSize

Attempt to display the File size quicker in the Document Properties dialog
Reduce load progress bar’s height to 4 pixels
Merge pull request #4156 from Fitoschido/patch-1

Reduce load progress bar’s height to 4 pixels
Add even more unit tests for the API

This patch replaces most of the remaining TODOs in test/unit/api_spec.js with actual tests.
Disable the "Go to First/Last Page" buttons when the first/last page is currently active

Since the "Previous/Next Page" buttons are disabled when the first/last page is active, I think that for the sake of consistency the "Go to First/Last Page" should behave the same way.
Merge pull request #5175 from Snuffleupagus/disable-first/last-page-buttons

Disable the "Go to First/Last Page" buttons when the first/last page is currently active
Merge pull request #5174 from Snuffleupagus/even-more-api-unittests

Add even more unit tests for the API
Avoid an allocation in readCharCode().

readCharCode() returns two values, and currently allocates a length-2
array on every call to do so. This change makes it instead us a
passed-in object which can be reused.

This tiny change reduces the total JS allocations done for the document
in Mozilla bug 992125 by 4.2%.
Merge pull request #5172 from nnethercote/readCharCode-retval

Avoid an allocation in readCharCode().