Update cardinality estimation for Apply

When producing execution plans, a solution for recursive query building
is to stitch together by using Apply. A SingleRow doesn't actually produce
a single row when inside Apply. It is named SingleRow because that is
how many rows this operator will yield per open()/close() session, but the
total number of rows might be a value much higher. This commit changes
so the cardinality model returns the total number of rows, not just 1.
We probably should. Orthogonal to the changes this commit is working on, but you are correct.