Fix bug, when ':dependent => :destroy' option violates foreign key constraints, issue #12380
Use NameError#name to assert raised error.

This makes the test compatible with other Ruby implementations, which
may implement error messages differently.
Moved explanation of `--mountable` option up

The example code uses `--mountable`. In previous version this was followed by an explanation of the `--full` option, which doesn't make sense. Later on in the text this is better explained. I moved this explanation up without repeating too much.
skip migration check if adapter doesn't support it
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 missing test case for migrations when using sql structure
Prevent state leak.
Remove redundant code.
If a counter_cache exists, use it for #empty?
use name specified by 'as' for automatic inverse association to avoid reflecting on wrong association
Move test for blank.rb under object
Merge pull request #15642 from akshay-vishnoi/activesupport

Move tests for blank.rb under Object
[ci skip] add tests for ActionModel::Conversion
Merge pull request #15643 from aditya-kapoor/add-test

[ci skip] add test for ActionModel::Conversion
No need to require to_param, it is already required in to_query.rb
Merge pull request #15644 from akshay-vishnoi/activesupport

No need to require to_param, it is already required in object/to_query.rb
[ci skip] correct docs for conversion
Merge pull request #15646 from aditya-kapoor/correct-conversion-docs

[ci skip] correct docs for conversion
reduce hash lookups and disconnect normalize_port from the options hash