get text index for a text label when it is clicked on
replace "get_string_index" with "get_token"

The get_token function, for a font::ttext, takes a coordinate
position and a list of delimiter characters, and returns the token
pointed to, if the position is in bounds, and the character being
pointed at is not itself a delimiter. Otherwise it returns the
empty string.

We also add some debugging output to the label click handler,
so that on log channel gui/event, we can see example tokens and
whether they look like URLs.
add support to open clicked links, after prompting user

If the user clicks on a token in a gui2 label that looks like a
link, prompt them if they want to open it.
add "link awareness" to font::ttext objects

If link awareness is enabled, then tokens that look like links
will be rendered thusly, and a "get_link" function is provided
to check if a layout location is pointing to a token which was
rendered as a link.
link-aware rendering of labels

This commit adds a new property of font::ttext, whether it is
"link aware". Link aware text has tokens that look like hyperlinks
formatted thusly, with coloration and an underline.

A `get_link` function, taking a layout location, returns a link
token if it is pointed to at that location, and link awareness
is enabled, and the empty string otherwise.

All gui2::tcontrols may now have their text labels set to be link
aware if desired. The gui2::tlabel constructor automatically sets
these to be link aware. The gui2::tlabel click handler is set to
use the `get_link` function instead of the `get_token` function.

Link awareness is also registered as a property of [text] fields in
gui widget definitions.