Improve document loading and position iteration speeds

*Update: the major speed-up in moving to document end (i.e., PositionIterator.fastOffset) has been removed from this patch. There is further design work necessary to determine the correct way to speed up this use case for PositionIterator. The patch now provides a much more modest ~10% improvement for iteration speeds over the complete document. Speed-ups to document loading are still as documented below.*

This patch is focused around improving the performance of some of the really tight loops in WebODF. 

I've uploaded another document (king james bible from Project Gutenberg) to this url as another test case: https://drive.google.com/file/d/0B1EH5OPb-RrjckZ2MDRDNzlFVUk/edit?usp=sharing

The results of this patch on the main results (tested in Chrome, Safari & FF) are roughly:
Using the 100pages.odt doc:
Open document - 20% faster
Move to document end - 30% faster

Using the 1000pages.odt doc:
Open document - 30% faster
Move to document end - 160% faster

Using the KingJamesBible.odt doc:
Open document - 40% faster
Move to document end - 3000% faster (no, really... 3mins down to 6.7s!)