Postgres-specific functions - schema management

_re-opening #286 (with some additional work) against master_

This code introduces a way for each dialect to have it's own query, schema, and migrate methods by implementing a *Interface on the dialect's Client_* object. For the postgres schema functions I followed the convention of having a methods.js file, but this approach doesn't require that.

Beyond that, it implements some postgresql-specific functionality:

* set/show search_path
* create/drop schemas
* hasSchema to check if a schema exists
* hasTable now will only look for tables in the current schema