optimizer: another little step toward type inference

Generalize some of the tracking and optimization of predicates
with respect to constructors and bindings.

This generalization exposed an old bug in the optimizer, which is
that information accumulated in the "then" branch of a conditional
was not reliably flushed when continuing analysis after the conditional.
reduce size of manual-fonts.css
racket/unit: repair test

Should have been part of bcafba989f.
setup/parallel-build: repair test

Should have been part of 9e3b984463.