~jaro/balkon

ref: 4ebfe390a1e8b16f42c6bdb51c135c895a7ce022 balkon/test/Data/Text d---------
Integrate BiDi levels with spanToRuns algorithm.

Span/box boundaries no longer reset directionality.

BREAKING: Text with no strongly directional characters would
previously be treated as having no direction. It will now be
treated as having the direction defined in TextOptions.
This affects calculated positions.
Convert legacy span directions into levels.
Move BiDi Level to separate module.
Add expected run lengths to test data.
Add more sample texts.
Add helper function for run-length encoding.
Deduplicate emptyFont in RunSpec.
Generalise text from SpanData for other tests.
Deduplicate code in SpanData.
Add Arabic examples to spanToRuns tests.
Add shaped runs to manually test pagination.
Consolidate tree types into one.
Test interaction between boxes and mixed script.
Test soft breaking on box spacing.
Test line breaking in boxes.
Add ancestor boxes to interface.
Implement finding box edges.
Make paragraph direction explicit in tests.
Store direction in ResolvedBox.
Add required textDirection to TextOptions.
Next