Fix more spec nondeterminism, caught by Travis
Make Postgres::ArrayOp#[] return ArrayOp if given a range

When a range argument is used, Sequel does an SQL array slice,
which returns an SQL array.
Add Postgres::ArrayOp#hstore for creating hstores from arrays

Arguably, this should be done instead in Sequel.hstore_op.
However, Sequel.hstore_op only takes a single argument, so it
cannot handle the two array case.
Add Postgres::ArrayOp#replace and Postgres::ArrayOp#remove

array_remove and array_replace functions were added in PostgreSQL
9.3, and this adds support for them.
Support :index_type=>:gist option to create GIST full text indexes on PostgreSQL

Previously, GIN was always used.  However, there are cases where
a GIST index is preferable (faster to update, slower to search),
so allow the user to override the default.
Support the Database#create_schema :owner and :if_not_exists options on PostgreSQL

:owner should be supported on all PostgreSQL versions, but
:if_not_exists support requires PostgreSQL 9.3+.
Support the Database#create_view :recursive option for defining recursive views in PostgreSQL 9.3+

Since recursive views on PostgreSQL require columns to be explicitly
specified, and Sequel didn't support that before, start supporting
it now on all databases.  It's in SQL '92, and all databases except
for SQLite appear to support it.
Support creating/refreshing/dropping materialized views on PostgreSQL

Materialized views were added to PostgreSQL in 9.3, and this adds
support for them.  create_view and drop_view get a :materialized
option, and a refresh_view method was added for refreshing the
materialized views.

While here, I noticed the IF EXISTS syntax wasn't supported by
drop_view on PostgreSQL, so add that while here.