Do not split MixedStyledText words across lines

Build words before permanently appending their glyphs to the line.

Note: hyphenation is disabled for now
Refactoring

- new WordGlyphsSpans class to hold a word's glyphs
  - provides peroperty to calculate the word's width
- rename 'chars' to 'word'
Move word-building from Line to Paragraph

Broken: space at start of line, inline images
Make ParagraphState work with words instead of with spans (WIP)
Start cleaning up the current Paragraph/Line mess

- merge Word and WordGlyphsSpans
- do attempt to merge the GlyphsSpans of different words when appending Words
  (we will handle this later)
Make ParagraphState work with words instead of with spans (continued)
Bringing words to the next line is working again!
Remove obsolete code
Fix newline handling
Fix inline flowable rendering
Move some code into create_to_glyphs
Fix tabs
Partly fix hyphenation (hyph across containers fails)
Refactor Paragraph.render()

ParagraphState now deals with words, simplifying matters.
reStructuredText: handle custom heading labels
Avoid making multiple show_glyphs calls for the same span

20% faster rendering.
reStructuredText: support the figure directive

- make Figure more general (the frontend should handle specifics)
- make GroupingElement more general