Convert plain layout to a wrapper over rich layout.
 
Embed TextOptions in ResolvedSpan.
SpanOptions are relegated to the legacy Plain interface, and
TextOptions are now being used internally.
 
Separate interface-independent layout algorithm.
 
Separate interface-independent constants.
 
Add line numbers to laid out fragments.
 
Fix compatibility with base < 4.15.
 
Fix documentation: references to local names.
 
Separate internal plain Paragraph/ParagraphLayout.
 
Integrate BiDi reordering.
 
Represent lines with non-empty lists.
We can do this because we removed lines with zero size.
 
Remove lines with zero size.
These lines would otherwise affect line numbering.
 
Do not re-export through the Plain module.
 
Clarify comment about BiDi.
 
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.
 
Separate module for the ParagraphLayout type.