Add stem width cache in bytecode.
The bytecode to compute stem widths has code that tries to compensate double
rounding of stem positions, cf. commit
fc5f7ccc. In some cases this can
lead to different hinted stem widths even if the unhinted widths are
identical.
The code in this commit introduces a stem width cache to circumvent the
issue. Its idea is that the result of the first computation of a hinted
stem width takes care of double rounding effects, but all other stems with
the same width do not. Instead, the cached first value gets used.