Refactoring to move page display code into separate class

Idea is to create reusable PDFViewer that will not have dependency on the PDFView (toolbars, find controller, etc).

- [x] Move pages container logic into PDFViewer (?) out of PDFView
- [x] Move thumbs container logic into PDFThumbnailsViewer (?) out of PDFView
- [x] Remove all dependency on PDFView in PDFViewer and classes it's using
- [x] Remove any rendering logic from PDFView
- [x] Isolate PDFPageSource logic and use in PDFViewer, PDFThumbnailsViewer, PDFFindController
- [x] Refactor PresentationMode (minimal, to remove dependency from PDFViewer)

NOTE: The refactoring shall not include any optimization or bug fixes
This won't work when you open a new file in the (generic) viewer, since the Promise has already been resolved then.