Raise RuntimeErrors with inspectable and MRI-independent messages.

Previous behaviour was MRI-dependent, now we're making sure the message
is correctly shown: something that can be relyied upon across every
Ruby implementation.
Merge pull request #13020 from razielgn/raise-inspectable-messages

Raise RuntimeErrors with inspectable and MRI-independent messages.
Added `rewhere` usage to AR querying guides
Merge pull request #13026 from vipulnsward/document_rewhere

Added `rewhere` usage to AR querying guides
Better error message for typos in assert_response argument.

This commit makes it really easy to debug errors due to typos like
"assert_response :succezz".
Merge pull request #13025 from pwnall/nice_test

Better error message for typos in assert_response argument.
`delgated` => `delegated`
Merge pull request #13029 from akshay-vishnoi/documentation

`delgated` => `delegated`
avoiding calling of #option_value_selected? two times
Merge pull request #13027 from akshay-vishnoi/f-refactor

avoiding calling of #option_value_selected? two times
Revert "Merge pull request #13027 from akshay-vishnoi/f-refactor"

This reverts commit f4a5a9ea4d183f4102796215d4502c46dbe3e52b, reversing
changes made to 7ccb482181ee6c47c765406009018a15172812de.

Reason:

The logic is different, the first call to #option_value_selected? is for
the :selected option (the argument is the "selected" variable), the second
call is for the :disabled option (the argument is the "disabled" variable).
Fix some minor typos [ci skip]
Merge pull request #13034 from vipulnsward/some_typos

Fix some minor typos
require the files we test
Raise `RecordNotDestroyed` when children can't be replaced

Fixes #12812
Raise `ActiveRecord::RecordNotDestroyed` when a child marked with
`dependent: destroy` can't be destroyed.

The following code:
```ruby
class Post < ActiveRecord::Base
  has_many :comments, dependent: :destroy
end

class Comment < ActiveRecord::Base
  before_destroy do
    return false
  end
end

post = Post.create!(comments: [Comment.create!])
post.comments = [Comment.create!]
````

would result in a `post` with two `comments`.
With this commit, the same code would raise a `RecordNotDestroyed`
exception, keeping the `post` with the same `comment`.
move changelog entry to the top
Merge pull request #13042 from brianstorti/fix-dependent-destroy-12812

Raise `RecordNotDestroyed` when children can't be replaced
`rename_index`: add the new index before removing the old one.

This prevents the following error when a MySQL index on a foreign key
column is renamed:

```
ActiveRecord::StatementInvalid: Mysql2::Error: Cannot drop index 'index_engines_on_car_id': needed in a foreign key constraint: DROP INDEX `index_engines_on_car_id` ON `engines`
```

refs: #13038.
remove leftover firebird adapter tests.
tyop