CachedIntrospectionResults uses SoftReference instead of WeakReference for non-cache-safe entries

Issue: SPR-11867
Defensively check for pre-resolved FactoryBean.getObject() results in circular reference scenarios

Issue: SPR-11937
(cherry picked from commit d870b38)