Initialize masks before mirroring

We were throwing away the rtlm feature mask set during
mirroring...
Add XXX note
Bug 72698 - Automatically support frac / numr / dnom

When seeing U+2044 FRACTION SLASH in the text, find decimal
digits (Unicode General Category Decimal_Number) around it,
and mark the pre-slash digits with 'numr' feature, the post-slash
digits with 'dnom' feature, and the whole sequence with 'frac'
feature.

This beautifully renders fractions with major Windows fonts,
and any other font that implements those features (numr/dnom is
enough for most fonts.)

Not the fastest way to do this, but good enough for a start.
Don't form fractions if only one of numr/dnom exist
Minor fraction mask setting improvement
Minor correction to kern mask checking
Cache various masks on the shape plan
Clean ht-ob headers
Add TODO item
[uniscribe] Fix scratch-buffer accounting
Reorder Tai Tham SAKOT to ensure it comes after any tone marks
[ot] Add Hangul shaper

Not exhaustively tested, but I think I got the intended logic
right.

The logic can perhaps be simplified.  Maybe we should disabled
normalization with this shaper.  Then again, for now focusing on
correctness.
[ot] Simplify normalization_preference again

No shaper has more than one behavior re this, so no need for a callback.
[ot] Define HB_OT_SHAPE_ZERO_WIDTH_MARKS_DEFAULT
[ot] Separate out hebrew and tibetan shapers from default

Now default shaper is truly no-op.
[hangul] Tighten up character categories

I had tried to expand to fill the blocks, but that sounds wrong in
retrospect.
[hangul] Fix decomposition

Part of https://github.com/behdad/harfbuzz/pull/10
[hangul] Fix decomposition logic

Seems to be working now.
[fallback] Minor
Add font->has_glyph()