Eliminate minitest warnings

https://github.com/seattlerb/minitest/commit/9a57c520ceac76abfe6105866f8548a94eb357b6#L15R8
remove code duplication
Merge pull request #10725 from neerajdotname/remove_code_duplication

Remove code duplication
Merge pull request #10667 from rubys/minitest-autorun

Eliminate minitest warnings
Require only minitest.

minitest/autorun required minitest/spec and we are avoiding to require
it.
Add CHANGELOG entry for 99860582b2b1c0fc42bf84c52aac57b243d42678
Fix the `:primary_key` option for `has_many` associations.

When removing records from a `has_many` association it used
the `primary_key` defined on the association.

Our test suite didn't fail because on all occurences of `:primary_key`,
the specified column was available in both tables. This prevented the
code from raising an exception but it still behaved badly.

I added a test-case to prevent regressions that failed with:

```
  1) Error:
HasManyAssociationsTest#test_has_many_assignment_with_custom_primary_key:
ActiveRecord::StatementInvalid: SQLite3::SQLException: no such column: essays.first_name: UPDATE "essays" SET "writer_id" = NULL WHERE "essays"."writer_id" = ? AND "essays"."first_name" IS NULL
```
deprecate Validator#setup (to get rid of a respond_to call). validators do their setup in their constructor now.
Merge branch 'deprecate-validator-setup'

Closes #10716
Merge pull request #10713 from senny/10693_fix_primary_key_option_on_has_many

Fix the `:primary_key` option for `has_many` associations.