Simplify storage size handling

No functional changes.
Make sure to release each event's vector clip mask

Events with a clip mask but no text such as just
    Dialogue: ...,{\clip(m 47 32 )}
had their clip masks carried over to the next event.

Fixes GitHub issue #22.
shaper: provide context to harfbuzz

I'm not aware of any bugs, but lack of context at the start and end
of a run can cause various issues with shaping, for instance if a
run split in the middle of a ligature.
shaper: rewrite and simplify harfbuzz shaping

Rewrite the core of the harfbuzz shaping function. Gets rid of the
MAX_RUNS limit of runs per line and reuses a single hb_buffer_t,
which should be more efficient.