Fix for crash on empty link text

If you passed an empty string to the link text, the app would crash on you.
This is because the ranges that the `Shoes::TextBlock` class build up for
styling different segments (which the links rely on for building their click
regions), would end up with `(0..-1)`, or nonsense ranges where the end was
before the start, and downstream code would be very unhappy with those.

We now properly will set the start and end equal in the styling range if the
string is empty, but that left another problem where the styling was always
assumed to apply to at least one character. I've updated those spots as well,
because even with this applied, an empty link or span would unduly influence
the styling of the next character after where it should have been.

Fixes #909.
I'd probably try to return `(0...0)` from gather_text_styles and then use `size >= 1` as the guard. Not sure how easy that is, though.