Allow trimmed whitespace to generate empty fragments.
BREAKING: Output may now contain more fragments with zero glyphs,
representing runs of whitespace that was trimmed away. These runs may
also start a box at the end of a line, instead of the beginning of the
next line.
BREAKING: Trimmed whitespace now affects line height.
Internally allow splitting texts at endpoints.
This is required in order to preserve a hard line break at the end of
the input.
Separate split list functions into a module.
Fix compatibility with base < 4.15.
Fix style: white space in lambdas.
Fix style: white space around operators.
Fix style: white space in exports and imports.
Mark some lists as explicitly non-empty.
Remove collapsible spaces at beginning of lines.
Allow empty lines when hard line breaking.
Implement trimming spaces at end of lines.
Add dropWhileEnd to SeparableTextContainer.
Add trivial instances of text containers.
Slightly decompose the Plain module.
Update documentation and derived instances.
Move non-public modules into Internal namespace.
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.