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
Prevent state leak.
Remove redundant code.
use name specified by 'as' for automatic inverse association to avoid reflecting on wrong association
Add missing test cases for #assert_no_difference
Introduce an Attribute object to handle the type casting dance

There's a lot more that can be moved to these, but this felt like a good
place to introduce the object. Plans are:

- Remove all knowledge of type casting from the columns, beyond a
  reference to the cast_type
- Move type_cast_for_database to these objects
- Potentially make them mutable, introduce a state machine, and have
  dirty checking handled here as well
- Move `attribute`, `decorate_attribute`, and anything else that
  modifies types to mess with this object, not the columns hash
- Introduce a collection object to manage these, reduce allocations, and
  not require serializing the types
Ensure we always define attribute methods
Specifically talking about Rake the library [ci skip]
Add links to RDoc back into API documentation guidelines [ci skip]
These were removed from #15542 unfortunately :(
Builder source code is still available on github [ci skip]
This was also removed from #15542
[ci skip] Clarify ActiveModel::Model docs

ActiveModel attributes initialized with String return String values
Merge pull request #15690 from deeeki/activemodel_model_doc

[ci skip] Clarify ActiveModel::Model docs
Document behavior concerns regarding the full Rails stack [ci skip]
Related to a discussion on #15508
ActionController::Parameters#require now accepts FalseClass values

Fixes #15685.
Copy edits and code font wrap for Active Record [ci skip]
Copy edits from e0f3f1a [ci skip]
- image_tag is an instance method
- explain possible results when asset pipeline is used
Merge pull request #15593 from sgrif/sg-attribute

Introduce an Attribute object to handle the type casting dance
Create 4.2 release notes guide scaffold [ci skip]

Point to future 4-2-stable branch for detailed changes. [ci skip]

Sync Active Support changelogs with release notes [ci skip]

4.2 Release Notes is a work in progress [ci skip]

Assorted fixes for AS release notes [ci skip]

* `Hash#deep_transform_keys` has already been backported
* Mentioning `ActiveSupport::SafeBuffer#prepend` in the "Deprecations" section would be enough
* Fix syntax in `Kernel#concern` example

Sync AS release notes with the latest commits [ci skip]

Synced 4.2 release notes with commits in railties [ci skip]

Sync AP Deprecations and Notable changes from CHANGELOG [ci skip]

Removed 4.2 release notes from the index [ci skip]

This deprecation was reverted in 489a8f2 [ci skip]

Synced Active Record changelogs for 4.2 release notes [ci skip]

Synced Active Model changelog with the release notes [ci skip]

Added cc26b6b as a 'Removal' item in AP release notes [ci skip]

Use 'character' instead of 'symbol' to avoid confusion [ci skip]

Edit pass on 4.2 release notes [ci skip]

:memo: :lipstick: Use `.xyz` and `#xyz` appropiately [ci skip]
Merge pull request #15689 from sgrif/sg-attribute-methods

Ensure we always define attribute methods