Fix cursor positions after modifying a hyperlink

Adding or removing containers can leave the cursor in a non-step
position.

Fixes #650.
Show complete hyperlink text when selection is collapsed
Re-arrange editorHyperlinks widget code
Only calculate hyperlink text just prior to displaying edit dialog

Calculating hyperlink text is extremely expensive. To avoid a lot of
unnecessary work, only calculate the text prior to displaying the edit
dialog.
Select and update the current hyperlink when selection is collapsed

When the current selection is collapsed within a hyperlink and an update
occurs, the selection will now be expanded to the hyperlink bounds and
updated.

Fixes #490.
Expand selection to cover newly inserted hyperlink

Mimicking LibreOffice's behaviour here, when a new link + associated
display text is inserted, immediately expand the selection to these
bounds.

This change makes add & edit link behaviours consistent, as the complete
hyperlink is always selected after the edit dialog is closed.
Use the current hyperlink as a placeholder for the display text

This helps clarify that if no display text is specified, the link text
will be used instead.
Merge pull request #655 from peitschie/hyperlink-fixup

Various fixes to hyperlink editing