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 nonesense 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.
Use (0...0) as sentinel for empty text ranges

This has the virtue that range.count == 0, which allows for slightly
more sane checking of the ranges in downstream code that uses those
ranges.
Merge pull request #913 from shoes/empty_links

Fix for crash on empty link text

Changelog: bugfix