Wrap exceptions in sequel exception type

Wraps all PGError exceptions thrown from execute, just like postgres
600 -> 600 examples
238 -> 230 failures
Swallow exceptions in Connection.close

This is what postgres does, and allows close to be called multiple times
without throwing an exception
600 -> 600 examples
230 -> 228 failures
Check disconnect errors at connection level

Other db errors are still caught at the database level.
This fixed the following test, but I guess broke something else,
I don't have things set up for good tracking of regressions...
Sequel::Database should provide ability to check connections for validity
600 -> 600 examples
228 -> 228 failures
Convert exception for constraint violations

The list of regexps is copied from postgres; I only updated the
one for the test I was dealing with to work with fdbsql's slightly
different messages.

600 -> 600 examples
228 -> 224 failures
use correct regex for foreign key constraint

The failing tests were flopping between 225 and 224, hopefully they
stopped, but I fixed a spec
600 -> 600 examples
224 -> 224 failures
Use sql states for exception types

the regexes are still there, but only as a weird backup.
Postgres does both, so I followed suit.

600 -> 600 examples
224 -> 223 failures
Removed outdated comment
return primary key on insertions

This requires us to get and cache the primary keys.

600 -> 600 examples
223 -> 217 failures
Moved dataset into it's own file
Changed FOR UPDATE to not be inserted

FOR UPDATE doesn't apply to our transaction model, so it can just
not be inserted; everything will still work.

600 -> 600 examples
217 -> 215 failures
Added support for delete and update returning

600 -> 600 examples
215 -> 214 failures
Consider "true" to be true, not "t"

fdbsql uses "true" to represent true, but PG_TYPES uses "t"
600 -> 600 examples
214 -> 210 failures
Run specs in the sequel path

We need to change to the sequel gem path before running the specs
so that the migration specs can find the migration files

600 -> 600 examples
210 -> 206 failures
Set not null implicitly if primary key is set

Every other db allows you to just say PRIMARY KEY without specifying
NOT NULL. There's a trello card to make fdbsql do the same, but
for now we need to explicitly set the NOT NULL. This is directly
necessary to make the TimestampMigrator work.

600 -> 600 examples
206 -> 173 failures
Created custom table generator for not null PK

FDBSQL doesn't automatically add NOT NULL to columns marked as a
primary key; it just throws an error. FDBSQL should be changed, but
in the meantime a custom generator is needed for composite primary
keys.

600 -> 600 examples
173 -> 123 failures
Return primary keys when parsing schema too

Postgres does, and apparently it's expected.

600 -> 600 examples
123 -> 117 failures
replace infix bitwise operators with functions

Now the bitwise stuff in the dsl works.

600 -> 600 examples
117 -> 112
Encode blob literals as hex strings

600 -> 600 examples
112 -> 110 failures
convert is_nullable from YES/NO to boolean

600 -> 600 examples
110 -> 108 failures
Support input/output identifier methods

I'm not entirely sure why these exist, but the tests pass, and
someone at sequel wanted them

600 -> 600 examples
108 -> 106 failures