Optimize select_value, select_values, select_rows and dry up checking whether to exec with cache for Postgresql adapter

Reduces creating unused objects, with the most dramatic reduction in select_values which used to map(&:first) an array of single element arrays.
Singularize association names before camelization

So that irregular multi-word pluralization rules have to be defined only for snake-case strings.
Regression test for irregular inflection on has_many

Also add a Changelog entry

[related #9702]
[fixes #8928]
Merge pull request #14793 from arthurnn/fixes_8928

Fixed has_many association to make it support irregular inflections.
Merge pull request #14790 from krisselden/optimize-postgres-selects

Optimize select_value, select_values, select_rows in Postgresql adapter.
:uglify -> :uglifier

The name of the gem is `uglifier` and all other references
use `uglifier`, not `uglify`.
Merge pull request #14795 from braddunbar/uglifier

:uglify -> :uglifier