Various list numbering improvements

This PR adds support for displaying multi level list numbering. The approach used was to use a different counter for each level instead of using nested CSS counters. This was because you can limit the levels of numbering displayed to a subset of the current level e.g. displaying two levels

1\. Level 1
&nbsp;&nbsp;&nbsp;&nbsp;1\.1\. Level 2
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1\.1\. Level 3
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1\.1\. Level 4

The nested counter approach was not compatible with the above option of list numbering.

Also added was continuing the numbering of previous lists in the document. This approach was intially modeled off existing code in OdfCanvas that partially implemented this feature but due to a regression this code was not being reached anymore.

The new approach assigns unique counters to all text:list elements regardless of whether they need to be continued or not. This allows us to circumvent CSS scoping rules that prevent using the same counter across different lists which was how the old approach worked. If a list continues another list in the document it can simply be assigned the unique counters from the list it continues from. This is a cleaner approach overall as it reduces the amount of overridden CSS rules.

Lists can either continue the list directly preceding them in document or they can continue a list anywhere in the document by referencing its xml:id. Both these cases are handled in this PR.

To better illustrate the three main improvements made in this PR I have included a comparison screenshot of WebODF rendering the updated visual-tests.fodt.

![comparison](https://cloud.githubusercontent.com/assets/4240149/3103678/c05f48a8-e65a-11e3-9bd6-426adf9d89a1.png)
Please add a separation here, at least an empty line or perhaps even some comment, to make it more clear that the last 15 lines of code (from `currentParseState.uniqueCounters.forEach(` to `counterRules.push(newRule);`) are a separate block, which cares for proper initalization of the counter values.
Storing the stack of counters is an independent step, which for better readability is also separated visually.