use a fresh result cache for each subformula
use a fresh result cache for each subformula

Usually, not many (if any) results can be shared between subformulae,
so this improves the library's performance for many benchmarks.

edechter/swipl-devel,edechter/swipl-devel,mndrix/swipl-devel,mndrix/swipl-devel,koryonik/swipl-devel,jn7163/swipl-devel,jn7163/swipl-devel,mndrix/swipl-devel,koryonik/swipl-devel,jn7163/swipl-devel,edechter/swipl-devel,mndrix/swipl-devel,koryonik/swipl-devel,koryonik/swipl-devel,mndrix/swipl-devel,edechter/swipl-devel,edechter/swipl-devel,jn7163/swipl-devel,koryonik/swipl-devel,jn7163/swipl-devel