Move Table and Sequence into RelationalProfile, DDL into BasicProfile.

DDL is abstracted into BasicProfile.SchemaDescription which provides
concatenation but no internal representation of schemas. The string
representation is added by the old DDL type which has been moved into
SqlProfile.

With DDL being available at that level, overriding Table in JdbcProfile
is no longer necessary, so the complete definition is now at the level of
RelationalProfile. Sequence is used in a similar way to Table, so we also
make it part of the cake at the RelationalProfile level.
Move more functionality up to Basic/Relational/SqlProfile.

An abstract SchemaDefinition type (for DDLs) along with DDLInvoker goes
into BasicProfile (which is debatable - we may want to split that up later
into a really basic profile which is only for querying and one that
provides write access to the data)..

ColumnType and abstract implicits for the standard Scala types go into
RelationalProfile. We can move it further up to BasicProfile later when
we have a clearer picture how non-tabular data structures should be
represented.

All QueryExecutor functionality goes into BasicProfile. I'm also removing
the special ToQueryExecutor workaround for SI-3346. Our standard .shaped
workaround is enough to cover this case.

The QueryCompilers for querying and inserting are also moved up to
BasicProfile.