Removes an useless warning message.

Function "outline_to_bitmap" gives a warning itself when it returns
NULL, so it is useless to print an addition warning for checking its
return value.
Fix a wrong condition.
Fix leaks when error occurs.
Fix fix_freetype_stroker

The first point in a countour is not allowed to be a cubic control
point, which is sometimes violated by blindly reversing a countour,
producing the following errors:

    [ass] FT_Stroker_ParseOutline failed, error: 20
    [ass] Failed to rasterize glyph: 1

To avoid this, let the first point remain the first
and only reverse the order of the remaining points.
Apply blur to both glyph and border when using opaque box borders
Properly render opaque box shadows even when there is no border

Even if the border size is zero, the shadow is supposed to be
a copy of a hypothetical border: when border_style is 1, this
coincides with the borderless glyph, but when border_style is 3,
the shadow must be an opaque box.

Opaque box borders are now generated regardless of border size
being non-zero, and outline_to_bitmap3 gets a new flag indicating
whether it should discard the border (after generating a shadow
from it).
Use glyph properties instead of renderer state in draw_opaque_box

scale_x, scale_y and hspacing should be read from the GlyphInfo
of the glyph the box is based on, not from render_priv->state.
The values in the renderer state are affected by override tags
specified after this glyph, so they are irrelevant.
Parse angle in styles as double number

Similar to VSFilter. Thanks to Iroha for reporting this issue.

Note: this breaks the ABI!
Fix fallback event formats

Fixes issue 83.
Add Blur field to ASS_Style

Useful when applications specify the style manually for non-ASS
subtitles.
Scale border size with user font size coefficient
Make closing ')' optional for some ASS tags

It appears VSFilter generally accepts the tag anyway if closing ')' are
missing in tags like \pos(1,2). Since they're not strictly needed
anyway, make the last ')' optional in order to make parsing more
tolerant against broken subs.

Fixes issue #79.
Add ass_set_storage_size and fix related scaling issues

\blur radius is not scaled from script to storage resolution
but is scaled from storage to display resolution. The same
applies to borders and shadows if ScaledBorderAndShadow is "no".
(If it is "yes", borders and shadows are scaled from script
to display resolution just like before.)
Support reading the YCbCr Matrix header

The value is parsed and stored as an enum constant that the consumer
can read from ASS_Track. All output images are still plain RGB,
and the consumer is expected to perform its own color correction.

Supported header values: (TV|PC).(601|709|240M|FCC) and None.
If the header is missing, a special compatibility value is used
that should be treated as TV.601 if the accompanying video stream
is YCbCr and as None otherwise. If the header is present but has
an invalid/unknown value, a different special value is substituted.
shaper: correctly handle @font advance

The code was confusing glyph index and unicode codepoint index.

Fixes issue 94.
shaper: proper script/language handling

Determine script for each character and use this as an additional
property for splitting up the text into runs. Characters of Common
or Inherited script assume the script of the preceding character. If
that is not possible (First character(s) in a run are Common/Inherited,
for instance), a backwards scan is done so they can assume the script
of the following character.

Additionally, determine default language in case no override is
set. This simply maps a language to a script, if a language exists
that is mostly representative for a given script. Pango's mapping
has been adapted.

This helps with fonts that don't have OpenType features set up
for default script/language pairs. It's also considered to be right
approach by most people, and might help with correct OpenType rendering
in some other cases.

Fixes issue 85.
Add type field to ASS_Image struct

Patch by chrisburel, posted on Google code issue 31.
Fix crazy VSFilter behavior for \move tag

Fixes issue 90 (both cases).
Don't overwrite user-defined aspect ratio settings

ass_set_storage_size() overwrote the user-defined aspect ratio set with
ass_set_aspect_ratio(). Change it so that if ass_set_aspect_ratio() is
used, the ass_set_storage_size() parameters are not used for any aspect
ratio calculations. (The storage size is still used for calculating the
blur scale.) This simplifies the code as well, because the aspect ratio
is now centrally calculated in ass_start_frame().

Update the doxygen. Make it clear that ass_set_storage_size() will be
used for aspect ratio calculation, unless ass_set_aspect_ratio() is
used. Also mention what libass actually does with the dar and sar
parameters: it uses them to calculate a pixel aspect ratio, nothing
else.

Explicitly allow resetting the storage size with w=h=0. Document that
it's allowed to remove the user defined aspect ratio by setting a pixel
aspedct ratio of 0.

See issue 6.
Add ass_set_pixel_aspect(), deprecate ass_set_aspect_ratio()

ass_set_aspect_ratio() is confusing, because it takes a DAR and SAR
value, while libass just needs a single pixel aspect ratio. Introduce
ass_set_pixel_aspect(), which sets the pixel aspect ratio directly.

ass_set_aspect_ratio() is considered deprecated. There's no reason to
remove it, but hopefully directing users to ass_set_pixel_aspect() will
make for a simpler API.

Improve the doxygen and document what ass_set_margins() actually does.