Cache InjectionMetadata per bean name instead of per Class, if possible

Issue: SPR-11027
Factory method type resolution works with indexed and named arguments as well

Issue: SPR-11019
Sneaked in test for covariant return type narrowing in a getter method

Issue: SPR-10995
Polishing
Fixed detection of setter in case of getter with covariant return type narrowing

Issue: SPR-10995
(cherry picked from commit 045f78e)
Polishing
(cherry picked from commit 6021822)
Avoid NPE in hasUnresolvableGenerics()

Issue: SPR-11034
Increased ResolvableType unit test coverage

Issue: SPR-11034