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.