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
Merge pull request #802 from peitschie/crazy-textpos-hack

Migrate per-node checks out of TextPositionFilter
Convert core.DomUtils into a static singleton
Convert odf.OdfUtils into a static singleton
Merge pull request #805 from peitschie/statics

Convert two commonly instantiated utils classes into static singletons
Optimize whitespace trimming on paragraph merge

Avoid some unnecessary work by only trimming insignificant whitespace
in the direction of the merge. This is the only place that whitespace
can inadvertently become significant whitespace.
Merge pull request #804 from peitschie/merge-p-speed

Optimize whitespace trimming on paragraph merge
Update detection code to correctly tag Internet Explorer 11 as IE

Thanks Microsoft!
Prevent focus wars (especially prevalent in Internet Explorer)

Adjusting the selected range in the event trap can trigger a new focus
event under some conditions. Prevent this from going into an infinite
loop by ignoring new focus events that arise while currently processing
a focus event.
Merge pull request #811 from peitschie/ie-fixups

Assorted fixes for Internet Explorer 10 + 11
Workaround for IE dropping the leading slash in pathnames

Various versions of Internet Explorer seems to neglect the leading slash
under some conditions (not when watching it with the dev tools of
course!). This was confirmed in IE10 + IE11

Fixes #809.
Merge pull request #810 from peitschie/readd-slash

Workaround for IE dropping the leading slash in pathnames
Add missing null check to layout test compareValues