Some Column improvements from tmp/remove-column:

- Deprecate the implicit conversion from Column[T] to Column[Option[T]].
  A few unit tests and the code generator relied on this conversion for
  foreign key definitions. These are made explicit now, using `.?` for
  Option-lifting.

- Make primitive types pack to ConstColumn instead of Column.
  A primitive value is always an execution-time constant.

- Remove the unnecessary Column subtypes Case.TypedCaseWithElse and
  ParameterColumn.

- Remove the `asc` and `desc` methods from Column. The implicit
  conversion to ColumnOrdered is sufficient.

- Allow any `Rep` instead of only `Column` in the tuple extension
  methods `~` and `~:`.