~jaro/balkon

ref: 69e92e75ea01ea2631277c40c5b6fdc36e538337 balkon/src/Data/Text/ParagraphLayout d---------
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.
Implement line breaking on code point boundaries.
Next