Using new association options, support associations based on columns that clash with ruby method names (Fixes #417)

This extends the support added recently for many_to_one associations
that allowed the separation of the method symbol from the column
symbol (the :key_column option).  This adds 5 other association
options to handle other cases:

  many_to_one :primary_key_method
  one_to_many :key_method
  one_to_many :primary_key_column
  many_to_many :left_primary_key_column
  many_to_many :right_primary_key_method

It would have been nice to have more consistency, but considering
how rarely this feature is used, I chose the path of least
resistence.

This makes it so either the primary key or foreign key column names
can clash with ruby method names, and you can still define
associations that work correctly in those cases.
Work around permissions issue in Oracle when parsing defaults

Defaults aren't critical to Sequel's functioning, so if parsing
the default raises an error (usually permission related), just
ignore the error and don't provide defaults.
Make table_exists? better handle tables where you don't have permissions for all columns (Fixes #422)

This should reduce the potential for error if you don't have
permissions for all columns.  It should also be faster for
tables where each row is quite large.

If you don't have permissions for the table itself, you may
still get a false negative, so note that in the RDoc.

While here, only rescue DatabaseErrors, as StandardError is a
bit too broad.  It is possible this will break adapters that
don't wrap their DatabaseErrors, but at this point I'm going
to consider those as adapter bugs that should be fixed in the
adapter.
Work around table_exists? issue on derby with new SELECT NULL syntax

Derby must do some aggressive optimization, where if you don't actually
need the table, it doesn't even check if it exists.  So refactor the
default handling to make it easy to override, and override it for
derby.
Fix typos
Qualify identifiers when filtering/excluding by associations

Before, the code used unqualified identifiers, which can be
ambiguous if there are joins.  This qualifies the related
identifiers, allowing use with datasets that select from
multiple tables.
Make set_column_type not modify defaults and NULL/NOT NULL setting on MSSQL, H2, and SQLite

This adds some integration tests for this behavior, and fixes
the cases where it wasn't behaving properly.  This is tricky on
MSSQL, because defaults are stored as constraints, and you need
to drop the constraint when altering the column type.

I wanted to get this working with derby, but limitations in derby
make testing the feature difficult (can't have a NOT NULL constraint
on a column that has a NULL default), so I have the tests marked
pending there.
Add INCLUDE to CREATE INDEX for MSSQL
Merge remote-tracking branch 'crawlik/mssql_index_include'
Cleanup MSSQL index :include option commit
Support Database#indexes in shared MSSQL adapter
Fix schema integration specs to actually test #tables/#views/#indexes

The way these were conditionally included caused them to be skipped
on most adapters.
Make Database#indexes not include primary key indexes on Derby and HSQLDB
A couple column default related fixes

On SQLite, wrap column defaults in parens, as the SQLite parser
complains without parens in certain cases such as function calls.

On MySQL, if Sequel::CURRENT_TIMESTAMP is used as the default
value of a DateTime/Time column, use timestamp instead of datetime
as the underlying type.  This shouldn't cause any regressions,
since previously MySQL would raise an error in this case.
Make Database#indexes not include primary key indexes on jdbc/db2
Fix Database#indexes on DB2
Make Database#indexes not include primary key indexes on Oracle using the jdbc adapter
Fix metadata methods (e.g. tables) on Oracle when custom identifier input methods are used
Add a spec for view_exists? in the oracle adapter specs
Support ActiveModel 3.2 in the active_model plugin, by adding support for to_partial_path

This mostly copies the ActiveRecord implementation, though there
may be slight differences.