Add Dataset#first! to Dataset::ACTION_METHODS

This allows Model.first! to work.
Don't add eager and eager_graph to Model::DATASET_METHODS

These methods should be added by the associations plugin, they
shouldn't be a basic part of Sequel::Model.
Bump version to 3.46.0
Update the 3.46.0 release notes

I noticed that the cache clearing changes can affect backwards
compatibility slightly, so note that and give an example in the
release notes.
Rescue potential caching exception on delete

Currently, if a row which has not been cached is updated, Memcached will raise
a Memcached::NotFound exception, as the key does not exist in the cache.
Spec for memcached delete exception
Remove superfluous whitespace addition
Remove extra/stress directory

I've never used this or realized it was there.  It still has some
of the ParseTree dependent filter code in it.
Add documentation about marshal issues with the pg_row extension
Make Dataset#get with an array of values handle case where no row is returned

Previously this raised a NoMethodError, which was definitely a bug.
Make lazy_attributes plugin no longer depend on identity_map plugin

The identity_map plugin has some fundemental problems, and will be
removed in Sequel 4.  This was the only remaining internal user
of the plugin.  Just like the eager loading code, a temporary
identity_map is built and used.
Add Plugins.def_dataset_methods for easily defining class methods that call dataset methods

Previously, only the base model plugin added dataset methods, and
that was mostly to get the core dataset methods, not dataset
methods specific to the base plugin.  It relied on the plugin
behavior of adding class methods for public methods in
DatasetMethods.   That's problematic for 2 reasons.  First, it
ends up creating class methods you don't want.  Second, it
defines the class methods inside the class itself instead of
in ClassMethods in the plugin.
Add Plugins.inherited_instance_variables for easily setting class instance variables when subclassing

Previously, inherited had to be overridden and the instance
variables copied manually.  Many plugins override inherited,
and most of those cases are just to copy instance variables.
This handles the most common cases and DRYs up quite a bit of
code.
Add Plugins.after_set_dataset for easily running after set_dataset

This DRYs up quite a bit of code in the plugins, and should avoid
future errors where set_dataset is overridden but the correct
return value is not used.
Note that Model.db= and set_dataset should not be used for dynamic switching
Reflect constraint_validations extension :allow_nil=>true setting in the database constraints

Previously, if :allow_nil was false or not set, it specifically
checked that the column was not NULL.  However, if :allow_nil was
set, it didn't specifically allow NULL in the constraint. This
results in constraints failing for NULL values even if :allow_nil
is set.

Unfortunately, if you previously generated constraints using this
extension with the :allow_nil option set, you need to drop
those constraints and regenerate them.
Make sure validation_class_methods Model#validate calls super
Allow freezing of model instances for models without primary keys
Make built-in model plugins deal with frozen instances

This fixes 10 of the plugins that ship with Sequel to deal
correctly with frozen instances.  The rest of the plugins
were reviewed and didn't appear to have issues with frozen
instances.
Add a guide detailing PostgreSQL-specific support