Change logic for handling invalid Pango markup in ttext::set_markup()

The previous logic assumed that the markup itself could possibly be
broken ONLY when it included unescaped ampersands (thus changing the
length of the ampersand fix test string). This is obviously not always
the case. As a result, markup was not disabled for strings like "this is
obviously <a>invalid</b> markup".

This logic is implemented in a single conditional statement. The new
condition is that if no ampersands had to be escaped, then _obviously_
markup was found to be broken first for some other reason, so we
immediately disable markup in that case. Alternatively, we test the
"fixed" test string immediately if we escaped ampersands.

Fixes bug #20996, although the specific manifestation of the bug
(confirmed) didn't make any sense in the first place.

NOTE: The overall logic continues to be bogus. Finding a & in the
original string isn't sufficient to find an unescaped ampersand; e.g.
"Foo & &lt; bar" will be "fixed" as "Foo &amp; &amp;lt; bar". Then
again, there's only so much that can be done to work with text written
by people who don't know Pango markup or HTML.