[varLib.mutator] Improve CharString rounding

Since CharString point coordinates are relative, rounding each point
independently can accumulate rounding errors causing to the last point
to not match the first one, which leads to rendering artifacts.

This is a hack to round the absolute point coordinates, but using pens
to convert the relative coordinates to absolute ones and back.

This is a hack since it drops hinting operators, and it can’t preserve
the original operators, in addition to being slower.

There is probably a more clever way to doing this.
3 files changed