Improved candidate term generation scalability

Candidate term generation was eagerly checking that terms had variables.
This was killing performance on systems with deep expressions, such as fmcad/large/ccp*.

A lazy non-recursive version of the check was actually already in place, so it really served no purpose whatsoever...