Move label style attributes to LabeledFlowablesStyle

- make List inherit from LabeledFlowables
MaybeContainer now is a context manager

The contents of a MaybeContainer will only be placed if:
- no EndOfContainer is raised in the 'with' body (fully rendered), or
- EndOfContainer.flowable_state is not None (partially rendered)

Use together with the discard_state context manager to also abort
when EndOfContainer.flowable_state is not None.

InseparableFlowables and LabeledFlowable were refactored to use the
new MaybeContainer and discard_state.
Small LabeledFlowable refactoring
Allow for independent LabeledFlowables

This is required for the footnotes which are not rendered in one go.

- GroupedLabeledFlowables passes the maximum label width down to the
LabeledFlowables (as keyword arg to GroupedFlowables.render())
- all LabeledFlowables will usually have the same style associated
- store the calculated label width in the rendering state