Rename web page templates to have .html.erb extension
Support distinct_on eager limit strategy for one_through_* associations
DRY up some shared association reflection code using a module
Add AssociationReflection#initialize_association_cache to DRY up some code
DRY up some more eager loading code

This moves apply_window_function_eager_limit_strategy from being
a private class method to being an association reflection method.

It also changes the initialize_associations_cache method just
added to only take the rows, since it can now determine whether to
use an array or not by introspection.
DRY up eager loading code for ruby eager limit strategy
Change guards for core_refinements spec

respond_to?(:using) apparently does not work.
Fix eager limit strategy used for pg_array_associations

These have always implicitly used the window function strategy,
but their eager_loaders just assumed the ruby strategy if there
was a limit.  Just set the strategy to ruby if there is a limit
so the existing code works.