~jaro/balkon

ref: 4ebfe390a1e8b16f42c6bdb51c135c895a7ce022 balkon/src d---------
Decompose ProtoFragment construction.
Add dropWhileEnd to SeparableTextContainer.
Add trivial instances of text containers.
Fix documentation of ProtoFragment after RTL placement.
Implement correct positioning of RTL runs.
Make SpanOptions a separate type.
Slightly decompose the Plain module.
Update documentation and derived instances.
Expose ParagraphConstruction.
Hide Rect union from public interface.

The function behaves in a specific way that should not be relied on by
other modules.
Use internal library to hide non-public modules.
Move non-public modules into Internal namespace.
Represent line breaks directly without offsets.
Make paragraphRect origin always 0,0.

This convention should make it easier for the caller to properly place
the paragraph within a document.
Fix mistakes in documentation comments.
Remove unnecessary default implementation.
Remove I8/Int distinction.

The distinction was meant to provide additional type safety, but
inconsistency with other used libraries required too many workarounds
for this to be beneficial.
Define SeparableTextContainer as its own class.
Minimise working with Data.Text.Internal.
Use ICU to find line break boundaries.
Next