Fixes #15671 reflection strings now work as keys

This was fixed on master but could not be backported because when the
branch was made `_reflect_on_association` didn't exist so grabbing
those changes would leave `_reflection_on_association` with the problem.

This fixes an issue where string based keys don't work on nested
associations. See issue #15671.
Add regression test for strings as keys on associations

This ensures that nothing is raised and it can correctly find the
association when strings are used as keys.