Moves watchScroll and getVisibleElements from PDFView
Moves thumbs logic into PDFThumbnailViewer.
Moves viewer code into PDFViewer and some code from PageView.
Moves pdfDocument.getPage/getTextContent requests out of PDFView
Moves rendering queue logic from PDFView
Removes PresentationMode dependency from PDFViewer
Removes any usage of PDFView in the PageView
Moves constants to avoid dependency on PDFView
Marks some private methods in PDFViewer and PDFThumbnailViewer

Conflicts:
	web/pdf_viewer.js
Adds types definitions (jsdoc) for the PDFViewer code.
Renames and refactors PDFView to PDFViewerApplication.
Merge pull request #5295 from yurydelendik/pdfviewer

Refactoring to move page display code into separate class
Fixes typo/regression of #5295 for presentation mode
Merge pull request #5359 from yurydelendik/pdfviewer2

Fixes typo/regression of #5295 for presentation mode
Followup fix for entering/exiting Presentation mode

Even after PR 5359, switching to/from Presentation mode is still sluggish and I'm still seeing `too much recursion` printed in the console.
I've managed to track down the issue to line https://github.com/mozilla/pdf.js/blob/master/web/page_view.js#L371. It appears that for this particular case, we actually *need* to set `noScroll = true` when calling the `_setScale` function. (Note that it only applies to *this* line, and not to Presentation mode in general.)
Given the amount of refactoring done to the viewer, I'm not sure what the best way to fix this would be. However I'm submitting this patch as an easy workaround for now, but we should probably refactor this to avoid calling a "private" method directly.
Merge pull request #5360 from Snuffleupagus/pr-5359-followup

Followup fix for entering/exiting Presentation mode
Small refactoring of the loadingBar hiding code
Fix loadingBar hiding when disableAutoFetch is enabled (issue 3590)