Use associated model's existing selection for join associations if it consists solely of explicitly quailfied columns

For associations that don't require joins, the associated class's
dataset selection is used by default if the :select option is not
specified.  In most cases that is SELECT * since that is Sequel's
default.

That is not true for many_to_many and other associations
that don't require joins. Those have always used associated_table.*,
so that they do not automatically pick up columns in the join
table and so that they don't have any issues with columns becoming
ambiguous.

However, if the associated class's dataset consists of all explicitly
qualified columns, then it will not automatically pick up columns
in the join table, and there won't be any issues with columns
becoming ambiguous.  In that case, there is no reason to ignore the
model's default selection.
Add column_select plugin, for using explicit column selections in model datasets

This is similar to the table_select plugin, but instead of using
table.*, it uses table.column1, table.column2, etc..  This makes
it so that it you add a column to the table while the application
is running, values for the column will not show up automatically
in the model instance values.
Use qualified columns in the lazy_attributes plugin

With the recent associations change, this means that setting
up a many_to_many association to a model using lazy_attributes
will lazy load such attributes instead of eager loading them.
Add dataset_source_alias extension, for automatically aliasing datasets to their first source

I think this creates more usable aliases.  If not for backwards
compatibility, this would probably be the default behavior.

This should also help workaround issues when the column_aliases
plugin is used if you also use the model as an argument to
join_table, since then the model will use the dataset instead of
the table name when joining, which can change the alias used.
Set primary keys correctly for models even if datasets select specific columns

Not sure why this wasn't done previously.  This is definitely
more correct, and fixes issues when the column_select plugin is
used with a table that doesn't have a primary key named id.
Make column_select plugin use schema for column information if available

This is more similar to how column determination is done by the
model, and works better in the case where you lack permission to
select from the model's table.
Recognize another disconnect error in the jdbc/mysql adapter
Minor spec fix to work when SEQUEL_COLUMNS_INTROSPECTION is used