Simplify CSS rules for cursor and composer element

The cursor node is now completely hidden when not in use, so there is no
need to touch the height or width properties of the composer or cursor.

In addition, the new overlay caret no longer requires the composer to be
displayed as an inline-block in order to function.
Provide a better caret position fallback when no visible rects are found

In the specific situation where there are no visible rectangles nearby
from which to calculate the caret position and size, the cursor node itself
will be made visible with some hidden internal text as a substitute.

This ensures the caret is correctly aligned in empty paragraphs that are
not left-aligned, or in an area surround by non-visible rects such as near
multiple annotations.
Remove another unnecessary inline-block

The cursor element is now only visible when it contains either text
or the caret-size helper. In addition, there are no longer any fixed
widths being applied to the cursor element, so the inline-block is not
necessary.
Merge pull request #611 from peitschie/cursor-visible

Provide a better caret position fallback when no visible rects are found
Only store the start node in DomUtils.getNodesInRange if within range

Fixes a regression introduced in 8b742ee. The currentNode was being
incorrectly added to the results array before it was checked to see if
it was contained inside the supplied range.
Merge pull request #612 from peitschie/range-fixup

Only store the start node in DomUtils.getNodesInRange if within range
Refactor calculation of CSS content for lists

Moved the processing of the list style to get the content rule into a
separate method so it can be re used for continue list styles. Also
ensured that the new getContentRule function returns a complete rule with
the semicolon on the end.
Support multi level list numbering

Implemented a changed list counter setup where each list level has its own
counter. This is to support behaviour defined where you can display only a
subset of the list numbers.

This is defined here:
http://docs.oasis-open.org/office/v1.2/os/OpenDocument-v1.2-os-part1.html#__RefHeading__1418890_253892949
Provide each text:list with a unique CSS counter

Giving each list a unique counter allows us to implement continued
numbering functionality while avoiding unexpected numbering due to how CSS
counter values are scoped to an elements sibilings or children.

This refactoring also fixes a bug where multi level lists would have zero
values appearing in the list labels.
Implement continued numbering

This adds support for the text:continue-numbering and text:continue-list
attributes. The text:continue-numbering attribute specifies whether to
continue the immediately preceding list if it has the same style.

http://docs.oasis-open.org/office/v1.2/os/OpenDocument-v1.2-os-part1.html#attribute-text_continue-numbering

The text:continue-list attribute specifes the unique identifier of a list
to continue numbering from in the document. These must also have the same
style.

http://docs.oasis-open.org/office/v1.2/os/OpenDocument-v1.2-os-part1.html#attribute-text_continue-list

https://tools.oasis-open.org/issues/browse/OFFICE-3558
Remove dead code from OdfCanvas and OdfUtils

The removed code was intended to implement continue list functionality.
However this code no longer worked due to a regression introduced in commit 3ae9e0c.

As I have refactored this area and implemented the continue list
functionality in the new list styles class this old code is no longer
required.

The removed code in OdfCanvas also made use of the
getFirstNonWhitespaceChild function in OdfUtils and the removed code was
the last remaining usage of it. As it is preferable to make use of DOM API
calls which give us the desired behaviour such as
element.firstElementChild I have removed this function.