Add pg_static_cache_updater Database extension for listening for changes to tables and updating static_cache caches automatically

This makes it possible to use the static_cache plugin for models
where the underlying table can change at runtime.  Assuming you
meet the criteria for using the extension, it should now be
possible to use the static_cache plugin for any model whose
dataset is small and not frequently updated.
Make sure loose_count returns an Integer in pg_loose_count

This is stored as a float in the PostgreSQL system catalogs,
but users probably expect a count to return an integer.
Support :frozen=>false option in static_cache plugin, for having new instances returned instead of frozen cached instances

This is designed to work with the new pg_static_cache_updater
extension, allowing for normal model creates, updates, and
deletes, with the updater taking care of updating the cache.

By default, automatically update the class by default when using
the model instance API to save or destroy objects.  But allow
that to be disabled via :reload_hooks=>false, so that when
using the pg_static_cache_updater, you don't reload the cache
twice.

Disallow saving/destroying existing instances when the plugin
is used without :frozen=>false.  This isn't backwards compatible,
but was the original intention.  In most cases this doesn't
change behavior, as existing objects in the cache were frozen and
saving/destroying them was disallowed anyway.