~jaro/balkon

Prevent empty shaped runs.

This is in preparation for a breaking change that introduces some
empty fragments into the output. Since the shaped runs output is not
concerned with runs of zero glyphs, these will be proactively removed.
Test paragraphSafeWidth on LTR paragraphs.
Add forceLeftAlign function for testing.
Expose paragraphSafeWidth.
Generalise shiftFragment function.

Intended for testing paragraphSafeWidth.
Allow explicit control of box collapsing.
Allow generating an empty run.
Add extensible filter for invisible lines.
Store default level in BiDiLevels.

This will be required for handling empty text sequences.
Prepare for vertical-align in BoxOptions.
Implement calculation of safe paragraph width.
Refactor lineNumbers into a common module.
Update changelog on paragraph alignment options.
Test with AlignStart by default.
Test centred paragraph.
Allow paragraphRect without point 0,0.
Test right-aligned paragraph.
Add start/end paragraph alignment.

In the future, when the paragraph direction is not explicitly set,
start/end options will allow alignment to change line by line,
whereas left/right alignment will be constant.
Add centre/right paragraph alignment.
Internally mark hard line breaks.
Next