Fix serial sequence query in Database#primary_key_sequence on PostgreSQL (Fixes #538)

The serial sequence query was previously broken, since it checked
if the sequence name was equal to the table name, which is wrong.
So in all cases previously, it fell back to using the custom
sequence query.

Modify the query to check that the table name matches.  While here,
always quote the table name if the serial sequence query matches,
since unlike the custom sequence query, the serial sequence query
doesn't deal with literal strings.
Don't include date part in Sequel::SQLTime eval_inspect output

This should be a no-op, but results in more readable output.
Make NegativeBooleanConstant inherit from Constant

Before, it inherited from BooleanConstant, which is wrong as it
lead to Sequel::NULL == Sequel::NOTNULL.
Nicer eval_inspect output for Sequel::CURRENT_DATE and similar constants
Make schema_dumper handle CURRENT_DATE/CURRENT_TIMESTAMP

Since we started using CURRENT_DATE/CURRENT_TIMESTAMP for
:ruby_default, the schema_dumper has not been able to dump
such values correctly.  To fix this, instead of only
using the eval_inspect extension for a very specific case,
include it generally, and just use eval_inspect to get the
default value.

In addition to the CURRENT_DATE/CURRENT_TIMESTAMP fix, this
also preserves any fractional seconds in time/datetime default
values when dumping.
Handle Sequel::CURRENT_{DATE,TIMESTAMP} values in the defaults_setter plugin

Since Sequel started parsing current date/timestamp values from the
database, the defaults setter has just used the values directly,
which is probably not desired as they represent database concepts
instead of concrete values.  Instead, convert the values into
the current Date or Time/DateTime.

While here, fix the defaults setter to actually set false default
values.
Fix potential thread-safety issues on PostgreSQL on non-GVL rubies

Similar to previous changes in the general library, this makes
the shared postgres adapter require synchronization for the
@primary_keys and @primary_key_sequences hashes for
Database instances, since multiple threads could potentially
attempt to update them concurrently.
Fix assorted documentation typos.
Make defaults_setter plugin delay current date/time calculation until instance creation time (Fixes #541)
Fix country typo

Greece is in Europe. Turkey is a good option!
Bump version to 3.39.0
Minor fixes to 3.39.0 release notes
Expand the association_pks plugin to support composite primary keys.
Optimize association_pks

This attempts to optimize the association_pks plugin be reducing
the number of hash lookups needed at runtime.  Since a closure
is used and the reflection hash already has the data available,
lookup the values outside the method definitions.

Additionally, to prevent excess branching at runtime, add 4
separate implementations of the many_to_many association pk setter,
one for each combination of left and right composite and singular
keys.

This commit also uses simpler SQL, using = instead of IN in more
places, even though a decent SQL database should optimize the
queries the same way.

While here, make the composite key handling perform the same
integer conversion that the singular key handling performs.
Combine disconnect error detection for mysql and mysql2 adapters

When the mysql2 adapter was added, I think the mysql error regexp
was copied, but since then the two have diverged.  Since both use
the mysql C API, I'm guessing that most error messages apply to
both, and even if they don't, it's very unlikely mysql and mysql2
would want to treat the same exception message differently.

Combining them into a single regexp makes the most sense, so that's
what I've done.  Additionally, since the regexp was hard to read,
I've split it into separate lines in what I think is the most
readable way.
Add schema and indexes reflection to ADO Access adapter
Move access schema parsing from shared adapter to ado subadapter

The parsing uses ado specific methods, so it doesn't make sense
to put it in the shared adapter.

While here, use strings instead of regexps for schema_column_type,
since we are looking for exact matches.  Also, do some minor
reformatting.
reimplement Database#tables for ADO Access adapter using OpenSchema
Implement Database#foreign_key_list for ADO Access adapter.
Note that it only works for single-column relations so far
Implement foreign_key_list for ADO Access adapter, now works for
compound foreign key relationships.