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
Trim trailing whitespace from Dialogue lines early

Trailing "\N " no longer produces an empty line.
This matches VSFilter.