Add split_values plugin, for moving noncolumn entries from the values hash into a separate hash (Fixes #868)

I don't recommend usage of this plugin by default, since it hurts
performance, but if you want to be able to add additional selected
expressions when retrieving model objects, and later save those
objects or compare them to other objects without the additional
expressions, this will allow you to do so.
Add Sequel::Model.cache_associations accessor, which can be set to false to not cache association metadata

This makes it easier to use Sequel in an environment where code
is being reloaded and classes are being unloaded.  By default,
if you do:

  Album.many_to_one :artist
  Album[1].artist

Sequel will cache certain information, such as the class is Artist.
Let's say you later unload the Artist class and reload it.  Sequel
will still use the reference to the previous class, missing any
changes added by the code reloading (for example if you changed
the default dataset for the Artist class).

With this change, you can do:

  Sequel::Model.cache_associations = false

and Sequel will not cache association metadata.  Instead, it will
recompute it every call.

To make sure this doesn't have negative effects on Sequel as a
whole, you can set the SEQUEL_NO_CACHE_ASSOCIATIONS environment
variable when testing, and it will automatically set
cache_associations to false when testing.

The only fallout from this change is that reciprocal_type for
many_to_one associations now needs access to the associated class
if not cached, so when caching is disabled, if there isn't a
single associated class (such as when using manually creating a
custom polymorphic association), you should manually set the
:reciprocal_type option.