Add failing unit test for crash when removing empty text nodes
Harden up OpRemoveText to better cope with empty text nodes

If an auto-collapsing container (e.g., a span) has text with a trailing
empty text node inside the container, the trailing text node is removed
immediately in order to collapse the span. This empty text node may also
appear in the textNodes to be removed, so each subsequent text element
needs to ensure it hasn't already been deleted.
Merge pull request #442 from peitschie/remove-text-defend

Harden up OpRemoveText to better cope with empty text node
Add test for frame position.
Add a helper function to get the bounding rectangle for an ODF page.
Improve positioning of frame that relative to page.
Add type that is a union of ClientRect and a struct with the same members.
This makes is possible to use them interchangeably.
In older browsers, positioning is only allowed on whole pixels.
The positioning test should set the allowed error higher in such browsers.
Add more supported length units.
And add a bit of documentation.
Check for null return value for getBoundingClientRect.
Slight clarification of exception.
Add tests with draw:frame directly in office:text.
This requires position: relative in office|text to get the frame positioned properly.
Simplify layout tests by having common styles.
Fix positioning for horizontal-pos="left" and vertical-pos="top".
Code cleanup and add a test for anchor="as-char".
Move getStyleElement from odf.Formatting to odf.StyleInfo.
Also add description to some functions and make convertToPx clearer.