Handle drop_constraint :type=>:primary_key on H2

H2 doesn't seem to allowing dropping primary key constraints by
name, it requires the :type=>:primary_key option to know it is
a primary key.
Allow creation named column constraints via :*_constraint_name column options

Previously, Sequel only allowed naming table constraints,
not column constraints.  However, this made it easy to create
constraints without knowing their names, which led to difficulty
dropping the constraints later.  This change adds the
:primary_key_constraint_name, :foreign_key_constraint_name,
and :unique_constraint_name column options to give names to
the constraints.

Unfortunately, not all databases support named column constraints.
In the interests of portability, those that don't (MySQL, H2,
CUBRID) have the column constraints converted to table constraints.

MySQL has problems dropping a primary key constraint on an
autoincrementing column, so when dropping a primary key constraint,
also drop the related auto incrementing.