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

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

Issue: SPR-11937
(cherry picked from commit 07edf11)