Save has_one associations only if record has changes

Prevents save related callbacks such as `after_commit` being
triggered when `has_one` objects are already persisted and have no
changes.
Fix 'fields_for' doc typo.
Merge pull request #14341 from keikun17/master

fix minor typo 'fields_for'. [ci skip]
Whitespaces
Do proper adapter check
Change the assertions depending in the database adapter

This will avoid the confusing flunk logic
The 4.1 release notes is already a thing so lets show in the guides
links
mysql adapter also fails with a number bigger than int
current_adapter? accepts multiple arguments
Merge pull request #8313 from alan/only_save_changed_has_one_objects

Save has_one associations only if record has changes

Conflicts:
	activerecord/CHANGELOG.md
minor fix to 4.1 rel notes for begin_transaction joinable option [CI skip]
Merge pull request #14343 from garysweaver/master

minor fix to 4.1 rel notes for begin_transaction joinable option
register OID for PostgreSQL citex datatype [Troy Kruthoff & Lachlan Sylvester]

citext makes it possible to use AR Hash finders for case-insensitive matching as sql UPPER/LOWER functions are not needed.