Add Model#set_nested_attributes to nested_attributes, allowing setting nested attributes options per-call

Previously, the default options set in the class-level
nested_attributes call were the only options that could be used.
This is obviously not friendly if you want to allow different
fields for nested attributes for different actions.

Note that this changes the internal nested_attributes API so
that instead of the reflection, a hash of metadata is passed
around.
Add Database#values on PostgreSQL to create a dataset that uses VALUES instead of SELECT

This adds DSL support for the PostgreSQL VALUES clause, which works
like a SELECT with the given rows.  This is similar to a SELECT
clause without a FROM clause, but allowing multiple rows.
Add :before_thread_exit option to Database#listen_for_static_cache_updates in pg_static_cache_updater extension

This is mostly needed to fix a race condition in the postgres
adapter specs, but I suppose it could be generally useful.