Don't assume the first glyph is part of the first char
Shaper::save_glyph_results incorrectly starts its loop by setting glyph_span to a length of 1. This means that the `if glyph_span.len() == 0` test in the inner loop will never succeed. Instead the glyph span should start out empty, and a glyph should be added only as the corresponding char is found. For comparison, see the Gecko code this was ported from: https://hg.mozilla.org/mozilla-central/file/ab0044bf/gfx/thebes/gfxHarfBuzzShaper.cpp#l1682