Improve RSE to handle disjunction.

That is, suppose we have:

    x <= a.notin(b)
    y <= a.notin(c)

We can reclaim a tuple from a when it appears in BOTH b and c. To do this, we
create an intermediate scratch collection that identifies when the RSE condition
for a given rule has been satisfied; then the actual RSE deletion rules take the
intersection of all the scratch collections for rules in which the RSE
collection appears.