Use NameError#name to assert raised error.

This makes the test compatible with other Ruby implementations, which
may implement error messages differently.
Upgraded rack
As Rack has some non backwards compatible changes added required
modifications to keep behaviour in rails close to same as before.

Also modified generators to include rack/rack for not yet released
version of rack
Since upgrading rack we can remove unnecessary string encodings
https://github.com/rack/rack/commit/5a5aee36
Added rollback method to ActiveModel::Dirty
Update documentation on STI change handling

Documenting a potential source of confusion about how STI classes handle changes.
Merge pull request #15987 from jamesprior/patch-2

Update documentation on STI change handling
Move STI docs off of the main Base document, leaving a note
Fix 10.3 invite_email.body assert_match example.

Currently there is no implicit conversion for Mail::Body to string
therefore .to_s must be applied. This is exampled in 10.2.2.
Merge pull request #15989 from nickpellant/master

Fix 10.3 invite_email.body assert_match documentation example.
Don't add a second method for attribute existence

We already had one in the public API that people can use more easily for
the transition
Merge pull request #15991 from sgrif/sg-has-attribute

Don't add a second method for attribute existence
Merge pull request #14861 from igor04/dirty-rollback

Added rollback method to ActiveModel::Dirty
Add CHANGELOG entry for #14861 and document private methods on the API
Rename rollback_changes to undo_changes

To avoid overload with database rollback
Add String support for min/max attributes on DatetimeField
Merge pull request #15214 from todd/date_field_docs

Added String support for min and max properties for date field helpers
Use if/else

Since we are using both branches of the code is preferable to use
if/else over the early return.
Add CHANGELOG entry for #15214

Closes #15214
push host / port / protocol extraction up

Then we only need to extract host once.
Add configuration to enable mail previews

Adds `config.action_mailer.preview_enabled`

This allows mail previewing to be enabled easily in non-development
environments such as staging. The default is set to true for development
so no changes should be required to existing Rails applications.

The mail preview path can still be configured using the existing
`config.action_mailer.preview_path` configuration option.

Adding this avoids devs from having to do stuff like:
https://gist.github.com/lengarvey/fa2c9bd6cdbeba96526a

Update actionmailer/CHANGELOG with new configuration.
Update configuring guide with new configuratation.
Add `config.action_mailer.preview_path` to configuring guide.