~jaro/balkon

ref: a42dd23609b364bf2e4375d8205c1623e4155522 balkon/src/Data/Text/ParagraphLayout d---------
Implement set operations on [ResolvedBox].
Allow extracting spacing from ResolvedBox.
Store direction in ResolvedBox.
Add required textDirection to TextOptions.
Link ResolvedSpan to boxes.
Use ResolvedBox when flattening trees.
Define ResolvedBox.
Improve code readability with type alias.
Separate WithSpan for sharing with other modules.
Deduplicate pagination code.
Implement Rich pagination.
Qualify Plain pagination.
Make paginateAll generic.
Implement piecewise paragraph construction.
Refactor pagination to allow rich layout.
Convert plain layout to a wrapper over rich layout.
Add basic support for Rich layout.
Embed TextOptions in ResolvedSpan.

SpanOptions are relegated to the legacy Plain interface, and
TextOptions are now being used internally.
Define tree for structuring paragraph content.
Define BoxOptions and TextOptions for formatting.

Differentiating the two record types reflects the fact that the root
inline box cannot be styled but its text contents can.
Next