Cache key should be different when is Array.

`cache.fetch(['foo'])` and `cache.fetch('foo')` should generate
different cache keys as they are not equivalents.

[related #8615]
[related #8614]
Make exists? use bound values.

When we build a query with an inline value that is a numeric (e.g.
because it's out of range for an int4) PostgreSQL doesn't use an index
on the column, since it's now comparing numerics and not int4s.

This leads to a _very_ slow query.

When we use bound parameters instead of inline values PostgreSQL
raises numeric_value_out_of_range since no automatic coercion happens.
Add Enum type to postgresql adapter's oids to prevent unknown OID warnings.
Added missing changlog entry for #14255
Simplify handling of defaults/options in button_tag

There's no need to rely on Active Support's Hash#reverse_merge for
simple cases with default values, since we can just merge from the
default rather than reverse merge from the options.

This also avoids the creation of one extra hash object by moving to a
Hash#merge! call.
Use 1.9 style hash on docs [ci skip]
Merge pull request #13244 from kommen/pg_enum_type_map

Add Enum type to postgresql adapter's oids to prevent unknown OID warnings
Fix enum test unused variable warning.

Related - https://github.com/rails/rails/commit/5c55aafd38f45ac019573f98438ffdbdc8c580f9
Merge pull request #14273 from vipulnsward/fix-warning-13244

Fix enum test unused variable warning.
Inline block to fix indent [ci skip]
Variants in ActionView::Digestor

Take variants into account when calculating template digests in
ActionView::Digest.

Digestor#digest now takes a hash as an argument to support variants and
allow more flexibility in the future. Old-style arguments have been
deprecated.

Fixes #14242
Fix for external generators extend Erb::Generators

HAML and probably other generators extend this class and invoke
filename_with_extensions with the old signature (without format).
This makes the second argument optional and defaults it to the #format
method which could be overridden as well.

Closes #14132.
Always return an array from formats so there is no need to wrap it when calling
Merge pull request #14243 from pch/digestor-variants

Variants in ActionView::Digestor
Allow string hash values on AR order method

This behavior has almost no performance impact:

String not allowed  66.910000   0.030000  66.940000 ( 67.024976)
String allowed      69.360000   0.030000  69.390000 ( 69.503096)

Benchmarked with http://git.io/Y0YuRw.
Merge pull request #14269 from arthurnn/expanded_key_array

Cache key should be different when is Array.
Revert "Merge pull request #14269 from arthurnn/expanded_key_array"

This reverts commit 475c96589ca65282e1a61350271c2f83f0d4044f, reversing
changes made to 705915ab5cf24430892107764b0050c07e1df583.

We decided that this is not worth busting everyone's cache as this
seems like a very unlikely problem. The problem only occurs when the
user is 1) not using a namespace, or 2) using the same namesapce for
different *kinds* of cache items. The recommended "fix" is to put
those cache items into their own namspace:

    id = 1
    Rails.cache.fetch(id, namespace: "user"){ User.find(id) }

    ids = [1]
    Rails.cache.fetch(ids, namespace: "users"){ User.find(ids) }

See the discussion on #14269 for details.
Merge pull request #14261 from MSch/bound-parameters-for-exists

Make exists? use bound values.
Merge pull request #14263 from robin850/allow_passing_string_to_order_hash

Follow up of #10732 - Allow string hash values on AR order method
quick pass over Active Record CHANGELOG. [ci skip].