~jaro/balkon

ref: 63a571647035682e5d177186b58d59a58ce37a8c balkon/lib d---------
Add user data to spans.
Add line numbers to laid out fragments.
Qualify Plain interface.
Future-proof records with options.
Fix documentation: missing Paginable.
Separate internal plain Paragraph/ParagraphLayout.
Expose text slicing functions.
Fix style: white space in exports and imports.
Prepare pagination for future layout types.
Add paragraph pagination.
Better format ParagraphConstruction documentation.
Separate module for the ParagraphLayout type.
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.
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.