Make cursor adjust over links

* fixes #879
* first two commits were needed to get all of this wired up
* required to wire up `text_fragments` (such as spans or links)  so that they know the text_block they belong to in order to get their visibility from there
* implication is that the visibility of a text fragment is defined by whether or not its parent text_block is visible, which I think is sensible
* May benefit from a more general approach, e.g. it is currently only available `Link`, but could also be made available for `Span` or `Text`.

Further comments inline

Would like a review :-)
I really dislike this method in general (kind of) due to too many arguments. But dunno how to do it better (I was working on this for some time with @fism88 ). We could maybe extract another method here.

`parent_text` and `text_block` are set here. They can not be set on creation as they are first created and then the TextBlock is created with them as their contents (this is set due to the way we call those methods). Therefore they are set here retroactively.

As texts/spans can be nested parent_text refers to their parent text element/span while text_block refers to the text block they are embedded in.