Clickable hyperlinks in gui2 labels

This branch adds support to open hyperlinks that are sent in chat messages, or placed in add-on descriptions, and to render them as hyperliks.

More specifically, it adds link awareness as a property of all gui2 labels, including those in a scroll label, such as the chat history box or an add-on description. (In those cases it is enabled by default.)

A new `get_token` method is added to `font::ttext` objects, which dereferences a pixel location to a string index, using pango, and returns the largest token containing that character. Elaborating on this, a `get_link` method is added also which checks if the token looks like a hyperlink (starts with "http://" or "https://"). `font::ttext` objects also have an added boolean property `link_aware`. This causes hyperlink tokens to be rendered as links, using a preprocessing step before passing the string to pango.

The gui2 tcanvas ttext object is configured to look for a `text_link_aware` property of text and to respect it when rendering, and gui2 `tcontrol` also gains a link aware property which indicates if its text should be link aware. gui2 `tcontrol` also exposes the get link and get token methods of its text.

Finally, gui2 `tlabel` is configured to be link aware, for the "default" definition values, and the left click handler asks the underlying `font::ttext` to dereference the click location to a url. If successful, it prompts the user if they would like to open the link. If they do, it runs `desktop::open_object(link)`, which on (all?) platforms should result in the default web browser being used to view the link. A right click handler is also added, which copies the link to the clipboard.

A parallel property `link_color` is also added, which permits the color of formatted links to be customized by label definition.