Move BigDecimal support and ColumnType aliases up to RelationalProfile.

This allows us to execute all numeric tests from DataTypeTest against
RelationalProfile, so we split it into RelationalTypeTest and
JdbcTypeTest.
Make joins work in QueryInterpreter.

- Rewrite JoinTest to use RelationalProfile.
- The semantics of RangeFrom and zipWithIndex joins in the AST were
  rather strange. Changing RangeFrom to represent an (infinite
  non-terminating) Query consisting of consecutive Long values makes for
  much saner semantics.
- Use the new RangeFrom semantics correctly in Query.zipWithIndex and
  the resolveZipJoins phase.
- Implement AutoInc columns in HeapBackend (used by JoinTest).
- Implement explicit inner/left/right/zip/index joins in QueryInterpreter.
- Implement Option conversions in QueryInterpreter.
- Allow actual Scala null values in QueryInterpreter in case a
  non-nullable column has to be extended to contain null (as is the case
  when evaluating outer joins). This means we need to be able to handle
  null values in some cases.