Overhaul non-void JavaBean write method support

This change revisits the implementation of ExtendedBeanInfo, simplifying
the overall approach while also ensuring that ExtendedBeanInfo is fully
isolated from the BeanInfo instance it wraps. This includes any existing
PropertyDescriptors in the wrapped BeanInfo - along with being copied
locally into ExtendedBeanInfo, each property descriptor is now also
wrapped with our own new "simple" PropertyDescriptor variants that
bypass the soft/weak reference management that goes on in both
java.beans.PropertyDescriptor and java.beans.IndexedPropertyDescriptor,
maintaining hard references to methods and bean classes instead. This
ensures that changes we make to property descriptors, e.g. adding write
methods, do not cause subtle conflicts during garbage collection (as was
reported and reproduced in SPR-9702).

Eliminating soft/weak reference management means that we must take extra
care to ensure that we do not cause ClassLoader leaks by maintaining
hard references to methods, and therefore transitively to the
ClassLoader in which the bean class was loaded. The forthcoming
SPR-10028 addresses this aspect.

See the updated ExtendedBeanInfo Javadoc for further details.

Issue: SPR-8079, SPR-8175, SPR-8347, SPR-8432, SPR-8491, SPR-8522,
       SPR-8806, SPR-8931, SPR-8937, SPR-8949, SPR-9007, SPR-9059,
       SPR-9414, SPR-9453, SPR-9542, SPR-9584, SPR-9677, SPR-9702,
       SPR-9723, SPR-9943, SPR-9978, SPR-10028, SPR-10029
Backport-Commit: 4a8be690998f43a9253305e09f96ad83058ef540
Conflicts:
	spring-beans/src/main/java/org/springframework/beans/ExtendedBeanInfoFactory.java
Oracle OC4J support will be deprecated in favor of Oracle WebLogic as of Spring 3.2
Avoid a hard dependency on Sun's CachedRowSetImpl class
Polishing
Avoid wide locks in order to remove deadlock potential in case of multi-threaded singleton creation/destruction

Issue: SPR-10020
Issue: SPR-8471
CachedIntrospectionResults uses full WeakReference for any non-safe ClassLoader arrangement

Previously, CachedIntrospectionResults had three modes of caching, with the intermediate mode relying on WeakReferences in the JDK PropertyDescriptor implementation. Since the JDK is actually using SoftReferences there these days, losing information in case of a GC run with tough memory constraints, we want to allow for hard references in PropertyDescriptor objects and therefore use a full WeakReference for the CachedIntrospectionResults object itself.

Issue: SPR-10028
Preparations for 3.1.4
DefaultMessageListenerContainer allows for concurrent subscription consumers on WebLogic/ActiveMQ

Issue: SPR-10037
Removed accidentally added DestructionAwareAttributeHolder class
Fixed typos in javadoc
Transaction timeouts for JPA translate to "javax.persistence.query.timeout" only (for EclipseLink compatibility)

Issue: SPR-10068
Polishing
Upgraded Hibernate 3 dependency to Hibernate 3.3.2.GA (and SLF4J 1.6.1)
ConfigurationClassPostProcessor consistently uses ClassLoader, not loading core JDK classes via ASM

Issue: SPR-10058
Removed coverage of deprecated java.util.Timer support

Issue: SPR-10050
Fixed HierarchicalUriComponents equals implementation

Issue: SPR-10088
Fixed CGLIB proxy class leaks through further equals/hashCode implementations in Spring AOP pointcuts

Issue: SPR-8008
Polishing
AbstractCachingViewResolver uses a cache limit of 1024 by default, avoiding overflow for redirect URLs

Issue: SPR-10065
Polishing