Move PageView from viewer.js to its own file

This is another PR that further reduces the size of viewer.js. This patch is done in two parts:
* The first commit is just a verbatim copy of the `PageView` object from viewer.js to it's own file.

* The second commit is a few small coding style fixes.
*I'm well aware that you should usually do style fixes in separate PRs, to make life easier for the reviewer. Since the first commit just moves some code around, I'm hoping that it will be OK this time*.
The changes in this commit are:
  * Fix the indentation in `scrollIntoView` (it was four spaces previously).

  * Inserting braces at single line statements (four places in total).