Enable collapsing/expanding of Outline Items

This PR does a number of things:
* Moves the `DocumentOutlineView` code to it's own file.
* Changes the way that the outline is created. Instead of building it using `<div>`, it's changed to use `<ul>` and  `<li>` (unordered lists). This is necessary for the next part of this PR, and also makes it easy to fix a few visual nits in the current CSS.
* Enables the user to collapse/expand outline items. *This is a feature that I've been wanting, particularly in large documents.*
There is also a menu, that makes it easy to collapse/expand all items.
* Finally, it enables highlighting of the currently active outline item. *Another feature that I think is practical when browsing the outline in large documents.*

For testing this, the following file could be used: http://mirrors.ctan.org/info/lshort/english/lshort.pdf.

__I'm submitting this PR to see if there is any interest in the above features.__
If there is, I assume it would be best to split this into a couple of different PRs!?