AR::UnknownAttributeError should include the class name of a record

This would be helpful if 2 models have an attribute that has a similar
name to the other. e.g:

before:

    User.new(name: "Yuki Nishijima", projects_attributes: [name: "kaminari"])
    # => ActiveRecord::UnknownAttributeError: unknown attribute: name

after:

    User.new(name: "Yuki Nishijima", projects_attributes: [name: "kaminari"])
    # => ActiveRecord::UnknownAttributeError: unknown attribute on User: name
Merge pull request #17019 from yuki24/add-class-name-to-unknown-attr-error

Message on AR::UnknownAttributeError should include the class name of a record
Merge pull request #17324 from vipulnsward/activejob-warnings

Enable emitting of warnings from ActiveJob tests.
docs, It's "Active Job" not "Active job". [ci skip]
Merge pull request #17329 from vipulnsward/mention-perform-later-docs

Mention `perform_now` in AJ base docs to specify how to immediately invoke a job [ci skip]
No need to specify log level, run at log level as all other Rails components.
- Remove duplication in AJ logging test for setting logger.
- Remove un-needed require in AJ rescue test.
Fix Relation.rewhere to work with Range values
Remove duplicate 'select' database statement

The `select` method has the same definition in almost all database
adapters, so it can be moved from the database-specific adapters
(PostgreSQl, MySQL, SQLite) to the abstract `database_statement`:

```ruby
def select(sql, name = nil, binds = [])
  exec_query(sql, name, binds)
end
```

---

More details about this commit: the only two DB-specific adapters
that have a different definition of `select` are MySQLAdapter and
MySQL2Adapter.

In MySQLAdapter, `select` invokes `exec_query(sql, name, binds)`, so
calling `super` achieves the same goal with less repetition.

In MySQL2Adapter, `select` invokes `exec_query(sql, name)`, that is,
it does not pass the `binds` parameter like other methods do. However,
[MySQL2Adapter's `exec_query`](https://github.com/rails/rails/blob/74a527cc63ef56f3d0a42cf638299958dc7cb08c/activerecord/lib/active_record/connection_adapters/mysql2_adapter.rb#L228L231)
works exactly the same whether this parameters is passed or not, so the output
does not change:

```ruby
def exec_query(sql, name = 'SQL', binds = [])
  result = execute(sql, name)
  ActiveRecord::Result.new(result.fields, result.to_a)
end
```
- Fix mentioned shortcut, to what the shortcut actually is, and that it accepts blocks for `assert_no_enqueued_jobs` and `assert_no_performed_jobs` test helpers.
- args => arguments when used in actual docs.

[ci skip]
- Changed description for AJ enqueuing methods to provide a sane description.

[ci skip]
Merge pull request #17338 from vipulnsward/aj-doc-fixes

AJ doc fixes [ci skip]
Merge pull request #17337 from claudiob/remove-duplicate-select-method

Remove duplicate 'select' database statement
Merge pull request #17331 from vipulnsward/activejob-cleanups

Activejob cleanups
- Inline AJ around_perform and  around_enqueue in CallbackJob used for tests.
[ci skip] Provide more reasoning to not accept cosmetic changes
Merge pull request #17336 from rebyn/patch-1

Provide more reasoning to not accept cosmetic changes [ci skip]
Oops, missed a closing bracket [ci skip]
fix url generation error message
Merge pull request #17313 from accessd/fix-url-generation-error-message

Fix url generation error message