Number Notes
Introduce DirectReference (takes target ID from Referenceable)

This cleans up the implemenation of NoteMarkerWithNote (and Note).
If style is a ParentStyle, we should still search the StyleSheet
Split text into words using itertools.groupby
Remove obsolete SingleStyledText methods
Handle fields in a more transparent way

- SingleStyledText.split now takes a Container as argument so that
individual words can depend on it
- no more need for FieldException and Field.field_spans()
- change ParagraphState to handle these changes (needs cleanup)
- store the current span/item (no more need for itertools.chain)

Notes:
- as before, if a PAGE_NUMBER field doesn't fit on the current line/page
and is placed on the next page, it will display the wrong page number
- nested flowables (FlowableException) were not tested (are they still
needed?)
Introduce NumberedParagraph superclass for Heading and Caption
Avoid the need to override ParagraphBase.initial_state()

The text(Document) method returns the MixedStyledText instead.

If support for nested flowables is removed, initial_state() can be
eliminated althogether:
- if Paragraph.spans = MixedStyledText.spans
- ParagraphBase could perhaps be eliminated too
Drop support for nested flowables

No more need for:
- FlowableException
- Flowable.spans, Flowable.split, Flowable.font
- ParagraphBase.initial_state()
This has no effect, so remove it
Header and Footer can be plain Paragraphs
NumberedParagraphStyle replaces HeadingStyle and CaptionStyle