New star projection expansion with correct types:

- Run expandTables much earlier (after inferTypes) and handle
  OptionTypes and MappedScalaTypes there by creating Option mappings
  (using OptionApply) and TypeMappings.

- Now expandSums does not have to care about table expansions anymore,
  so we can remove ExpandsLike.

- The types for Options in table expansions are correct now, so we can
  remove the hacks from QueryInterpreter and ResultConverterCompiler.

- Since table types in the top-level result have already been eliminated
  before createResultSetMapping, it doesn’t need the special handling
  for TableExpansions anymore.

- Eliminate TableExpansions in expandTables instead of expandRecords to
  keep the tree smaller. This requires a change in forceOuterBinds to
  wrap Tables instead of TableExpansions.