Backport of #735: Fix identity groupBy with type mappings.

- In #624 we removed NominalTypes of "by" clauses from the inferred type
  of GroupBy nodes. This does not fully address the problem because the
  underlying NominalType is still needed for properly expanding a Table
  to its TableExpansion. Instead, we now generate a *new* NominalType
  that wraps whatever type the "by" clause has in the result of GroupBy,
  treating this situation the same as Pure (which makes sense because
  the left side of a GroupBy result also generates a new structure).

- Allow NominalTypes of single columns in the JDBC MappingCompiler. Such
  types can arise from the new scheme.

- Treat MappedScalaTypes correctly in MemoryCodeGen (as required by the
  new test cases).

Related to issue #96. Test in AggregateTest.testGroupBy.
Merge pull request #736 from slick/tmp/more-identity-groupby-2.0

Backport of #735: Fix identity groupBy with type mappings.