Add a mechanism for selective style overrides

This adds 2 new API functions:

  ass_set_selective_style_override()
  ass_set_selective_style_override_enabled()

They can be used to force dialog text to use a specific ASS_Style. It
uses a fuzzy heuristic for that, and the quality of results may vary.
It does style overriding selectively and tries not to override things
that need explicit styling. The heuristic for that isn't set in stone
either, and can change with future libass versions.

Closes libass#88.
parse_tag: split \fscx, \fscy, \fsc
parse_tag: merge \fs+, \fs-, \fs
Move (r)skip_spaces to ass_utils
Parse override tag arguments exactly like VSFilter 2.38

Also replace strtocolor in ass_utils with string2color
from ass.c, because that is more useful everywhere now.
Introduce ass_drawing_add_chars for adding a whole string at once
Require closing '}' for override tags

Like VSFilter. '{' without a following '}' is just text, though
in vector drawing mode it still delimits individual drawings.

This also lets us nicely avoid '\0' hacks
in the \t override tag handler in parse_tag.
parse_tag: remove unnecessary malloc
Use ass_drawing_add_chars for vector drawings

This not only provides a performance improvement but also
conveniently fixes the following issue: we used to interpret
backslash-escapes in vector drawings, but we shouldn't.
Simplify drawing text assignment
Close gaps in borders of self-intersecting glyphs

If the glyph is self-intersecting, so are the stroke
borders produced by stroking it. Normally, there is an
"inside" and an "outside" stroke border, but they swap
roles around self-intersections, the "inside" one going
on the outside while the "outside" one stays inside.
Currently, we take only the "outside" border, which thus
hides behind the main glyph around self-intersections.

Keep both stroke borders instead.

NOPE: this gives only a thick path around the edges
of the glyph, which breaks blur.
stroke_outline: merge original and stroked outline to fix blur
fix_freetype_stroker: ensure overall clockwise direction

The stroked outline's overall direction is always clockwise, so we
need this to be able to correctly add it to the original outline.