Get Vertica engine working.

All tests pass. Notable things about Vertica:

* There is no support for a string aggregate like MySQL's `group_concat()`.
* There is no support for arrays like in PostgreSQL or Oracle.
* As a result, we have to fetch collections of things as part of a full
  relation, and assemble them into arrays by tracking the change ID. Very SQL
  92; I haven't had to do something like this in a decade!
* Vertica is really picky about data type matching (or maybe ODBC is), so
  we have to cast all values passed as collections of things.
* There is no support for `VALUES()` expressions as tables as in PostgresSQL,
  so we have to use a CTE like we do for Oracle.
* In fact, there is so much different from Postgres that we no longer inherit
  from the pg engine.
* Comments are not supported on table columns, only on projection columns.
  Since we don't know what those are, we don't bother trying.
  http://vertica-forums.com/viewtopic.php?t=144
* No check constraints or `ON (UPDATE|DELETE) CASCADE` support, either.

Still, got it all working reasonably enough.