simplify propagation for domain and aliasing consistency
simplify propagation for domain and aliasing consistency

When collecting variables that are not skipped in any branch, we now
also keep track of the nodes where each variable appears as a
branching variable, and this is useful at later stages of propagation.

In addition to being shorter, the new code is also at least as fast:

    %?- comparison.
    %@ euler172(6)         1.012     1.072
    %@ cycle100i           1.211     1.000
    %@ queens6             1.699     1.060
    %@ cycle100k           0.829     1.000
    %@ dominos7            0.849     1.000
    %@ queens7             1.921     1.069
    %@ euler172(8)         0.838     1.069
    %@ dominos8            0.987     1.000
    %@ euler172(10)        0.979     1.065
    %@ false.

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