~jaro/balkon

ref: c4a46fb242d7a8f91821bd0d8525b1cecb22c0fc balkon/src/Data/Text/ParagraphLayout/Internal d---------
Clarify spanLanguage and add basic ICU conversion.
Remove (~) operator from ParagraphConstruction.

The tilde operator was causing compilation errors with older versions
of GHC, possibly due to a conflict with the lazy pattern match syntax.

It has been replaced by a pure Haskell alternative that uses function
application.
Refactor line breaking.
Allow breaking at character bounds.
Use a single list of line breaking alternatives.
Clarify meaning of Array in Paragraph.
Implement trimming spaces at end of lines.
Remove redundant overflow handling.

This may be useful later when words are allowed to overflow, but this
code path is currently unused.
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.