[varLib.featureVars] Improve new algorithm to its full potential
[varLib.featureVars] Improve new algorithm to its full potential

See 0283b1f.

By finishing overlayBox() to cull remainder box when possible, we generate
far fewer spurious boxes, if any.

For the featureVars_test.py test case, this now generates optimal output,
that is, 2*n - 1 boxes.

Running time for n=20 stays at 0.06s, which is probably Python startup
time.

Running time for n=100 is down from 2.5s with unoptimized new algorithm,
to 0.17s for this and number of output boxes from 5050 to the optimal 199.

Fixes #1372 again

fonttools/fonttools,googlefonts/fonttools