Make it easier to define sub-classes of rule operands, and optimize operands for WindowedAggSplitterRule and RemoveTrivialProjectRule.

The new class RelOptRuleOperandChildren contains the children of an operand and the policy for dealing with them. The parameters to construct an operand are now simpler, and an operand can more easily be sub-classed. Existing methods to create operands still exist but are deprecated and will be removed in optiq-0.4.18.
Fix bugs in RemoveTrivialProjectRule.strip, JdbcProjectRel.implement and SortRel.computeSelfCost. Remove prints.
Change existing rules to use the new methods to construct operands: operand(), leaf(), any(), none(), unordered().