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
Implement LayoutResX/LayoutResY

This allows ASS scripts to be independent from video resolution.

Signed-off-by: Oleg Oshmyan <chortos@inbox.lv>
Do font supersampling the VSFilter way

To avoid jerking when font size scale is animated caused by grid
fitting, we intentionally request an overly large font size from
FreeType and downscale the outline afterwards.

Currently this large font size is fixed at 256.
This commit changes it to 64 times the actual wanted font size,
which is what is used by VSFilter. The advantages are:
  * Compatibility with VSFilter.
  * Support for font hinting, even if at 64 times the size.
    Knowing this coefficient, scripts can compensate
    for it by correspondingly decreasing \fs values.

This improves upon commits 7af7801 and c207000.

The drawback is that jerking is reintroduced when an mplayer
window with libass EOSD is resized. Jerking could be avoided
by scaling \fscx and \fscy instead of \fs. Pro: this would make
the exact look of the font completely resolution-independent.
Con: this would play badly with font hinting. In any case,
this commit makes no attempt to do this.

ensure_font_size, unused since 7af7801, is removed in favor of
clipping the font size just before passing it to FreeType, as
discussed in issue #46. The mysterious height*2 check is dropped.
Scale \fscx/\fscy instead of \fs from storage to display resolution

This prevents jerking on media player window resize.