Return a hash rather than array from fetch_multi

The current implementation of `fetch_multi` returns an array and has no
means to easily backtrack which names yielded which results. By changing
the return value to a Hash we retain the name information. Hash#values
can be used on the response if only the values are needed.
Merge pull request #11481 from sorentwo/fetch-multi-hash

Cache#fetch_multi returns a Hash instead of an Array
Replace "data store" with database [ci skip]

Active Record is specifically for databases. Refs #12101.
modify model generator warning message. refs [#174c9f0]
Merge pull request #14174 from kuldeepaggarwal/fix-resource_generator_test

fix test cases
Merge branch 'master' into adequaterecord

* master:
  modify model generator warning message. refs [#174c9f0]
  Replace "data store" with database [ci skip]
  Return a hash rather than array from fetch_multi
  Fix concerning module reference [ci skip]
  Fixes docs typo in nested resource path helpers [skip ci]
  Fix some validators when used on model instance
  Pass strings to demodulize method
  pass strings to the underscore method
  speed up `underscore` in cases that don't need to do anything
  pass the class name to `tableize`
  [ci skip] Update list of files extensions in rake notes guide
  Fix controller test not resetting @_url_options
we can't cache when the arguments are a hash
Fix a bug affecting validations of enum attributes

This fixes a bug where any enum attribute of a model
would be evaluated always as 0 when calling the
database on validations.

This fix converts the value of the enum attribute
to its integer value rather than the string before
building the relation as the bug occured when the
string finally gets converted to integer using
string.to_i which converts it to 0.

[Vilius Luneckas, Ahmed AbouElhamayed]
Merge pull request #14203 from Alwahsh/aabouelhamayed

Fix a bug affecting validations of enum attributes
Improve guide for Hash#transform_keys and related methods.

[skip ci]
Fix code alignment in duplicable? guide.

[skip ci]
[ci skip] use secrets.yml instead of secret_token.rb in the action controller guide
`includes` uses SQL parsing when String joins are involved.

This is a partial revert of 22b3481ba2aa55fad1f9a5db94072312b345fb55.
The current implementation of `references_eager_loaded_tables?` needs to know
every table involved in the query. With the current API this is not possible
without SQL parsing.

While a2dab46cae35a06fd5c5500037177492a047c252 deprecated SQL parsing for `includes`.
It did not issue deprecation warnings when String joins are involved. This resulted
in a breaking change after the deprecated behavior was removed (22b3481ba2aa55fad1f9a5db94072312b345fb55).

We will need to rethink the usage of `includes`, `preload` and `eager_load` but for now,
this brings back the old *working* behavior.
Merge pull request #14231 from brianstorti/bs-docs-secret-token

Use secrets.yml instead of secret_token.rb in the docs
Merge pull request #14226 from senny/14109_partial_revert

`includes` uses SQL parsing when String joins are involved.
Improve a bit the 4.1 release notes [ci skip]

Fix a few typos. #present_in has been changed to #presence_in through
commit d61baee5.
[ci skip] correct select examples and doc, ref [522c0fd]
Merge pull request #14230 from kuldeepaggarwal/doc-select

Correct `select` examples and doc, ref [522c0fd] [ci skip]
Improve collision explanation for Hash#transform_keys.

Based on comments at
https://github.com/rails/docrails/commit/42417b0013819e573be9ffc5402e179003156e8e#commitcomment-5527251

[skip ci]
set the error callback to a nice default in case nobody set an error callback and an error happens