Put a newline between error and backtrace in bin/sequel
Allow external jdbc, odbc, and do subadapters to be loaded automatically

This changes how jdbc, odbc, and do adapters are loaded.  Previously,
the jdbc and do adapters kept the subadapters in a staticly populated
hash in the main adapter, and odbc just used a case statement.  This
switches them all do use a dynamically populated hash.

When a new Database object is created in the jdbc, odbc, and do
adapters, it will try to require the relevant subadapter file.  If
that file does not exist, no errors will be raised, to preserve the
ability to use an adapter without any subadapter.  If the
subadapter file does exist, it will be loaded.  If there are errors
loading the underlying drivers in the subadapter file, those will be
raised as AdapterNotFound errors, similar to the behavior when
loading a main adapter without installing the corresponding driver.

The subadapter files all dynamically populate the hash in the main
adapter, so that future attempts to load them will not result in
additional requires, again, similar to the main adapters.

In addition, this puts mutexes around accesses to the shared maps
on !MRI, to protect against concurrent modification.

For users who want to create a jdbc, odbc, or do subadapter, the
process for an internal subadapter or external subadapter is now
exactly the same, you just need to make sure the relevant file
is in sequel/adapters/(jdbc|odbc|do)/subadpater.rb, and that when
the file is required, it populates the main adapter's
DATABASE_SETUP hash with the appropriate subadapter symbol.

This adds some additional APIs:

Sequel::Database.load_adapter: This is split off from adapter_class,
and handles the loading of the adapter.  By default, it handles
loading of main adapters, but you can use the :map and :subdir
options to handle subadapters.

Sequel::DataObjects.load_driver: Handles loading the relevent do_*
drivers in the subadpaters, raising AdapterNotFound errors if they
cannot be found. This is because propogating the LoadError that
would be raised normally would be interpreted as the subadapter not
being found, which should be skipped.

Sequel::JDBC.load_driver: This takes a driver class name string
and an optional symbol specifying the jdbc-* gem to load via
load_gem.  If evaluating the class name string raises a NameError,
this will raise AdapterNotFound with an appropriate error message.