[Date: Sun Mar 16 00:56:32 CET 2014, Author: julianhyde]
To solve this issue, we should create a form of `RelOptRuleOperand` that fires once per `RelSubset`. If a node gets a new child with an existing set of traits, the rule won't fire again; but if it gets a new child with a new set of traits (i.e. a new `RelSubset` within its `RelSet`) then the rule should fire.
We should write some tests that the operand behaves as expected, both in an abstract test and in a test for a particular query that uses traits, e.g. propagating collation.