Add has_and_belongs_to_many back to reflections hash.

This adds back `has_and_belongs_to_many` reflection to the reflections
hash. Even thought we are not using that internally, as
`Model.reflections` is a public method we need to keep the hash of
reflections coherent.

ad7b5efb55bcc2e0ccd3e7f22a81e984df8676d1 is the commit that made
has_and_belongs_to_many became a has_many :through and a has_many.

[fixes #14682]
Small test syntax change
Replace reflect_on_all_associations internally
Add _reflect_on_association method for internal use

Internally we wanna look-up the reflection by the association name in
the private list of reflections, so I am adding a
_reflect_on_association method that does that.
Make HasManyThroughSourceAssociationNotFoundError use _reflections

- No need to use .map(:to_s)
- Add @api public to reflections
Add changelog for #15210
Don't recurse infinitely when calling non-existent method on super
fix test from 7537057888d2d63c3b6c2019d5828bc445fbd6c9
Merge pull request #15210 from arthurnn/fix_hbtm_reflection

Fix habtm reflection
Revert "Merge pull request #15292 from zzak/backport_43f525031ad3f83a04f84e79bbe1de340bf937aa"

This reverts commit d40287d330ae1b70f26ded242399db3e20cfb0c7, reversing
changes made to 2922417b9aef1df192338c421ce821c02088db5b.

These tests are already there
Merge pull request #14986 from dlangevin/trailing-slash-url-generation

Fixes URL generation with trailing_slash: true

Conflicts:
	actionpack/lib/action_dispatch/http/url.rb

Conflicts:
	actionpack/CHANGELOG.md
	actionpack/lib/action_dispatch/http/url.rb
Merge pull request #9083 from bronson/patch-1

avoid using alias in generators
Add FIXME note about the thor bug