Fix some bugs in comprehension fusion.

- Inline single-row generators of shape Pure(StructNode(_)) into the
  projections of Bind nodes in convertToComprehensions. If we rely on
  doing it in fuseComprehensions it may be too late: If that generator
  returns an aggregate, it will have already been lifted into the parent
  comprehension, making the single-row character unrecognizable.

- Assign correct types to lifted aggregates and inlined aggregates. For
  treating sub-queries as scalar values we use a new SilentCast operator
  which does not cause an actual SQL cast to be generated.

Fixes issue #753. Test in CountTest.testJoinCount.