Store direction in ResolvedBox.
Add required textDirection to TextOptions.
Link ResolvedSpan to boxes.
Embed TextOptions in ResolvedSpan.
SpanOptions are relegated to the legacy Plain interface, and
TextOptions are now being used internally.
Fix style: external vs internal imports.
Fix style: white space in exports and imports.
Move non-public modules into Internal namespace.
Minimise working with Data.Text.Internal.
Use ICU to find line break boundaries.
Store span index in ResolvedSpan.
Implement absolute line heights with half-leadings.
Implement "plain" interface.
Separate tests by module.