Implement a Two Page View Mode

This PR is the continuation of the work that @Moistly and @waddlesplash started in PRs #2395 and #2660.
*Please note that I got permission from @waddlesplash on IRC to take over the implementation of this feature.*

Given that the last actual coding in #2660 was done six months ago, it was easier for me to start fresh rather that trying to patch the old code. Compared to the old implementation, this PR tries to add as much of the code as possible in separate files to avoid cluttering viewer.js too much.

__Things left to do in this PR:__
- [ ] Provide proper icons for the buttons. (The current ones are just place-holders.) 
- [ ] Provide a way to toggle the page mode in Presentation Mode. (Since the context menu only works in Firefox, we need to solve this in a way that is cross-browser compatible.)


This PR fixes #590, #1475, #2376, #3658, [bug 786602](https://bugzilla.mozilla.org/show_bug.cgi?id=786602) and [bug 864440](https://bugzilla.mozilla.org/show_bug.cgi?id=864440).