Show filter argument when invalid
Support DEFERRABLE constraints in postgres
Parse/dump the :deferrable attribute of postgres indexes
Document the (postgres specific) :deferrable option to add_index
Small updates after radford's commits

Use slightly nicer error message formatting for invalid filter
arguments.

Fix integration specs on PostgreSQL after deferrable commit.

Update CHANGELOG.
Make Dataset#count use a subselect when the dataset has an offset without a limit (Fixed #587)

Dataset#count already used a subselect if there was a limit on
the dataset, but it didn't previously consider the offset without
limit case.
Make Rakefile work with rake 10 but old rdoc

Rake 10 removes the deprecated rake/rdoctask library, which means
that there will potentially be no task to generate rdoc.  To handle
that, conditionally define the rdoc tasks only if there is a task
class that can handle them.
Make Dataset#avg, #interval, #min, #max, #range, and #sum accept virtual row blocks
Refactor how dataset methods are added to model datasets

Historically, the way dataset methods were added to datasets was
on a method-by-method basis.  The methods were stored in the
dataset_methods hash, keyed by method name, and each was
individually defined on the dataset's singleton class.

A while back, the dataset_module feature was added, so you
could just extend the dataset with a module, and it would
automatically have all of the module's methods, without having
to define the methods individually.

This commit removes the method-by-method implementation.  Now,
def_dataset_method calls dataset_module internally to define the
method inside the dataset module.

I've also decided to make things a little more consistent by
using a Module subclass, and allowing subset to be called inside
of a dataset_module block, for easier grouping of dataset methods
in one place.  Now Model.subset, just calls subset in the dataset
module.

Finally, adding public methods to a dataset module outside of the
block now adds the appropriate class methods, using a method_added
hook.

The only backwards incompatible change in this commit is the
removal of the Module#dataset_method attr_reader.
Add Database#do on PostgreSQL for using the DO anonymous code block execution statement

This was requested a while back, and was simple to implement.

Some other adapters implement Database#do as an execute/execute_dui
alias, but none that connect to PostgreSQL.  I plan on removing
those aliases in Sequel 4.
Make the force_encoding plugin work with frozen strings

Note that this only handles it in the typecast_value case. In the
set_values/merge_db_update case, it is assumed that those values
are not frozen.
Adding example of qualified Database query
Add better description of qualified identifiers/aliased expressions to README

I'm moving the description of qualified tables to the general
section on qualification. The problem with using the :schema__table
example earlier is that we haven't explained what it means, so it
looks like magic.

I noticed the join table example was also using the __ syntax
before the explanation, so I removed that as well.
Reset Model.instance_dataset when extending the model's dataset

Before, if you used Model.dataset_module to add methods to a
model's dataset, those methods weren't used in the model's
instance_dataset. In most cases, that won't matter, since the
instance dataset is only used for updates and refreshes, but
theoretically you should be able to call such methods on the
instance_dataset as well.

This introduces the reset_instance_dataset to derive the
instance dataset from the dataset.  I chose this path instead
of extending the instance dataset directly, as I believe it
will be more reuseable, and it makes it so that the Module's
extended method is not called twice.