A warning line should look like a warning section

[ci skip]
[ci skip] Add Doc of with_options for the case when inherited default options and original options have same keys
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
Use released rails-dom-testing
Fix example code for `Rails::Generators::Testing::Behaviour` [ci skip]

`cleanup_destination_root` method is not found anywhere.
Instead, `prepare_destination` clean up distination root on setup.
Merge pull request #17292 from tricknotes/generator-test-doc

Fix example code for `Rails::Generators::Testing::Behaviour` [ci skip]
Clarify wording in Rails HTML Sanitizer section

[ci skip]
Merge pull request #17293 from djpowers/patch-1

Clarify wording in Rails HTML Sanitizer section [ci skip]
Merge pull request #15827 from yuki24/another-improvements-for-dynamic-error-pages

A warning line should look like a warning section in Guides
Improve the warning a bit [ci skip]
Add a deprecation warning for abiguous boolean values

In Rails 5.0, we'd like to change the behavior of boolean columns in
Rails to be closer to Ruby's semantics. Currently we have a small set
of values which are "truthy", and all others are "falsy". In Rails 5.0,
we will reverse this to have a small number of values which are "falsy",
and all others will become "truthy".

In the interim, all values which are ambiguous must emit a deprecation
warning.
Merge pull request #17296 from sgrif/sg-booleans-should-make-sense

Add a deprecation warning for abiguous boolean values
Use include_blank value as option label

Update select_tag to reflect documentation and behave the same as form builder select. If the value of include_blank is not boolean true, use that value as the option label.
Add necessary 'require reverse_merge' to HAWI.rb

Hashes with indifferent access should support `reverse_merge` out-of-the-box
but they don't; for instance the following code fails:

```ruby
require 'active_support'
require 'active_support/hash_with_indifferent_access'
hash = HashWithIndifferentAccess.new key: :old_value
hash.reverse_merge key: :new_value
```

This PR fixes the case above by simply requiring
`active_support/core_ext/hash/reverse_merge` in `hash_with_indifferent_access.rb`
and adding a test that confirms the fix.

---

Here are more details about the bugfix.
Currently, `reverse_merge` is [defined in HashWithIndifferentAccess](https://github.com/rails/rails/blob/4e8ea13ba1a0870905a46fac5f232d9f41eef8a4/activesupport/lib/active_support/hash_with_indifferent_access.rb#L208)
by invoking `super`, that is by invoking `Hash#reverse_merge`:

```ruby
def reverse_merge(other_hash)
  super(self.class.new_from_hash_copying_default(other_hash))
end
```

However, Ruby's `Hash` does not have the `reverse_merge` by default: it must be
added by ActiveSupport, and that requires the following line of code to be
present:

```ruby
require 'active_support/core_ext/hash/reverse_merge'
```
Merge pull request #17300 from claudiob/add-necessary-require-reverse-merge

Add necessary 'require reverse_merge' to HAWI.rb
Replace (slower) block.call with (faster) yield

Performance optimization: `yield` with an implicit `block` is faster than `block.call`.
See http://youtu.be/fGFM_UrSp70?t=10m35s and the following benchmark:

```ruby
require 'benchmark/ips'

def fast
 yield
end

def slow(&block)
 block.call
end

Benchmark.ips do |x|
 x.report('fast') { fast{} }
 x.report('slow') { slow{} }
end

# => fast    154095 i/100ms
# => slow     71454 i/100ms
# =>
# => fast  7511067.8 (±5.0%) i/s -   37445085 in   4.999660s
# => slow  1227576.9 (±6.8%) i/s -    6145044 in   5.028356s
```
Merge pull request #17302 from claudiob/replace-slower-block-call-with-faster-yield

Replace (slower) block.call with (faster) yield
Merge pull request #17034 from pramod-sharma/master

[ci skip] Add Doc of with_options for the case when inherited default options and original options have same keys
Replace (slower) block.call with (faster) yield

Performance optimization: `yield` with an implicit `block` is faster than `block.call`.
See http://youtu.be/fGFM_UrSp70?t=10m35s and the following benchmark:

```ruby
require 'benchmark/ips'

def fast
 yield
end

def slow(&block)
 block.call
end

Benchmark.ips do |x|
 x.report('fast') { fast{} }
 x.report('slow') { slow{} }
end

# => fast    154095 i/100ms
# => slow     71454 i/100ms
# =>
# => fast  7511067.8 (±5.0%) i/s -   37445085 in   4.999660s
# => slow  1227576.9 (±6.8%) i/s -    6145044 in   5.028356s
```
[ci skip] Add Doc of with_options for the case when inherited default options and original options have same keys