Calculate the estimated cardinality of a join group.
We will do this by first dividing the group into subgroups that share
variables. For each subgroup, we will calculate the estimated cardinality
of that subgroup. Then we will multiple those cardinalities together
to get an estimate of cardinality for the whole group.
The estimated cardinality of a subgroup will be calculated using the
same logic contained in the ASTStaticJoinOptimizer.