Only use BINARY for mysql case sensitive uniqueness check when column has a case insensitive collation.
Fixes STI when 2+ levels deep.

PR #14052 Added a regression where it was only looking for methods in one
level up, So when the method was defined in a 2+ levels up the
inheritance chain, the method was not found as defined.
Merge pull request #14345 from arthurnn/revert_14052

Fixes STI when 2+ levels deep.
Remove mocking on save, when not necessary
Merge pull request #14353 from arthurnn/remove_small_mock

Remove mocking on save, when not necessary
[ci skip] Add documentation for original_fullpath.
Merge pull request #14291 from laurocaetano/doc-for-original-fullpath

Add documentation for original_fullpath. [ci skip]
MySQL 5.6 and later supports microsecond precision in datetime.

You might want to branch it to include this only for 5.6, but
passing these values to < 5.6 doesn't cause issues either.
Test microsecond on mysql 5.6
Changelog entry for mysql56 microseconds
Merge pull request #14359 from arthurnn/mysql2_56_franc_sec

MySQL 5.6  Fractional Seconds
Merge pull request #13040 from kamipo/case_sensitive_comparison

Only use BINARY for mysql case sensitive uniqueness check when column has a case insensitive collation.

Conflicts:
	activerecord/CHANGELOG.md
Unit test for mysql quote time usec
Change usec to 0 on tests that compare seconds

Avoid rounding problems with `.usec` method rounding the seconds when the
field doesn't persist the `.usec` piece.
Enhance docs for update_attribute [ci-skip]
Merge pull request #14363 from arthurnn/usec_tests_mysql56

Add more tests for mysql 5.6 microseconds + Fix tests
use method_defined? to check whether or not a method is defined
Merge pull request #14364 from why-el/better-docs-for-update-attribute

Enhance docs for update_attribute [skip ci]
Fix a grammatical error in the i18n guide [ci skip]
Merge pull request #14366 from sukolsak/grammar

Fix a grammatical error in the i18n guide