Cache file data within the loaded Zip

The zip code has been refactored to ensure only a single GET request is
needed by the browser to load a document. This makes webodf slightly more
robust when loading documents as it avoids problems with the prior HEAD
request returning different file sizes, or even being unsupported by the
browser/server completely.

The current Zip implementation attempts to lazily load parts of the zip
file during decompression which is a good concept to preserve to allow
memory usage to be reduced in future. For now however, robustness of
file loading is more important.
Remove cache from browser runtime

Removing the internal cache means the XHR will fall back to the browser cache
instead. Most uses don't reload the same unmodified document multiple times
within the same session, so there should be no major problems with this
approach.
Remove now-unused runtime.isFile function
Remove now-unused runtime.getFileSize function
Merge pull request #793 from peitschie/remove-cache

Remove cache from browser runtime
Document usage guidelines for DomUtils.getElementsByTagName*

Adds documentation as requested. Fixed #736.
Optimize all existing uses of getElementsByTagNameNS

Transformed all read-only uses to use node.getElements*. Any loop that
immediately modifies the nodes in the list has been updated to use the
DomUtils.getElements* version.
Merge pull request #792 from peitschie/getelementbyns

Document guidelines for getElementsByTagNameNS and optimize all usages
Support selection & deletion of more ODF fields

* Includes a tool to help parse the RNG to figure out text containers
* Add demonstration section to visual-tests document

Fixes #772
Visually distinguish fields from non-field text regions
Add additional ODF-used namespaces
Merge pull request #782 from peitschie/odf-container-defs

Improve display & navigation around ODF fields
Filter out meaningless text nodes from unit tests

Some unit tests compare an XML snippet before and after the execution of a
set of operations. For this comparison to pass all the text nodes had to
be exactly the same even if they were not contained in an ODF paragraph.

This imposed a limitation on the tests as they could not have any
whitespace between node structures that were compared in the test files.
Having whitespace is useful to format the test XML data so that it is more
human readable/editable.

This commit filters out any text nodes not contained by an ODF paragraph
so that any test comparisons won't be affected by these text nodes.
Merge pull request #799 from satsuper/unittest-node-filtering

Filter out meaningless text nodes from unit tests
Explain the reasons for the different versions of the compiled code.
Merge pull request #760 from vandenoever/compilercomments

Explain the reasons for the different versions of the compiled code.
Fix PositionIteration bug when first position is a rejected text node
Correct IE detection code for containsNode workaround

Though a tiny code change, this appears to grant a further 20% speed
improvement for position iteration.
Migrate per-node checks out of TextPositionFilter

Moving these checks into a node filter ensures it is only required
once per node, rather than once per node-position.

This results in a 60% improvement in position iteration speed.
Cache commonly used global object variables