Skip fully parsing \t if there is no backslash
Skip fully parsing \t if there is no backslash

The assertion in commit 66cef6774386d558e1e39096db926d677dad6882
fires on the following ASS code:

    \t(\t(foobar,)

(where "foobar" is any nonblank sequence that does not contain a backslash)

The outer \t is parsed as having a single argument "\t(foobar,"
including the comma. The inner \t is parsed as having a single
argument "foobar" *excluding* the comma. As a result, in the inner
parse_tags, args[cnt].end == end - 1 && nested, and the assert fires.

This is because arguments that contain backslashes are parsed
differently from arguments that do not. But if the argument to \t
contains no backslashes, why bother parsing it at all?
It clearly has no override tags and affects nothing.

Rather than try to make the assert more clever (and more convoluted),
this commit skips parsing the last \t argument if it has no backslash.
The assert is now valid. This probably does not significantly affect
parsing speed in either direction.

Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=25796.

libass/libass,ShiftMediaProject/libass,MrSmile/libass,Akemi/libass,astiob/libass,Akemi/libass,libass/libass,xbmc/libass,ShiftMediaProject/libass,MrSmile/libass,Akemi/libass,xbmc/libass,astiob/libass