Restoring clickable links

This commit recants on making the LinkSegments quite as central to the link
creation process. As it turned out, recreation of the segments posed annoying
challenges, so I rethought where things should be split.

Instead now the Link class gets a full backend in SWT which holds onto the
actual clickable listener and block. It relies on a list of LinkSegments which
define the clickable regions (and it _is_ multiple if a link spans a layout
break in the text).

This lets us just hook up the listener once, then revise the underlying space
that it applies to on the fly as the app is redrawn.

Testing will be forthcoming for the new structure, but wasn't sure until
getting quite a ways into it that the approach would work out.