Add smarter logic for removing unnecessary zoom levels

Some zoom levels end up being very close to the built-in presets
(fit-width/fit-height/auto), which makes zooming previous or next
level kind of annoying when the zoom level barely changes. This fixes
that by applying a threshold to the quotient between each consecutive
zoom level, and removes that zoom level if the ratio is below the
threshold. This also removes any duplicate values from the list of
zoom levels.
Merge pull request #7 from box/smarter-zoom-levels

Add smarter logic for removing unnecessary zoom levels
Fix #2 - Mobile browsers are unable to detect whether the entire page is scrollable

Adds useWindowAsViewport config option to allow the document to stretch
the containing element to its full size and use the window as its
viewport instead of using overflow:scroll on the viewport element.
This allows mobile browsers to hide browser chrome and jump back to
the top natively.
Merge pull request #8 from box/use-window-as-viewport

Fix #2 - Mobile browsers are unable to detect if the entire page is scrollable
Simplify DOM structure

Removes the `.crocodoc-pages` div wrapping the page elements. This
div was originally used for CSS transform-based zoom strategies,
but is no longer used, and ads unnecessary complexity to the code.