Reduce complexity in ContextLoaderUtilsTests

This commit refactors ContextLoaderUtilsTests into
AbstractContextLoaderUtilsTests and several specialized subclasses in
order to reduce to the growing complexity of ContextLoaderUtilsTests.
@Ignore empty test methods in RootWacEarTests hierarchy
Move MockMultHtServReqTests to correct package

This commit relocates MockMultipartHttpServletRequestTests to the
appropriate package.
Delete remaining JUnit 3.8 tests in spring-test

This commit deletes the remaining JUnit 3.8 tests in the spring-test
module that were still subclassing deprecated class hierarchies.

Issue: SPR-10499
Add header name to ex. msg in HeaderResultMatchers

Prior to this commit, the longValue() in HeaderResultMatchers added the
expected response header name to generated assertion failure messages;
however, both string() methods did not. This made it more difficult to
analyze the cause of failed tests.

Furthermore, while investigating a solution for this issue it became
apparent that longValue() throws a NullPointerException if the response
does not contain the specified header.

This commit addresses these issues as follows:

 - All methods in HeaderResultMatchers now include the response header
   name in generated assertion failure messages.

 - HeaderResultMatchers.longValue() now avoids NullPointerExceptions by
   explicitly asserting that the response contains the specified header.

 - The unit tests in HeaderAssertionTests have been expanded to test
   most foreseeable use cases.

Issue: SPR-10659
Fix issue with obtaining WebSocketContainer
Add getLastHandler to WebSocketHandlerDecorator
Reverse SPR-10402 change that caused 3.2.3 regression

SPR-10402 in Spring Framework 3.2.3 treated empty request parameter
values as missing values, if the empty value was turned into a null
by a PropertyEditor or Converter. This caused the regression.

Issue: SPR-10578, SPR-10402, SPR-10584
Add mvc: prefix to mapping samples in ref docs

Add 'mvc:' namespace prefix to 'mapping' and 'exclude-mapping' elements
in the reference documentation.

Issue: SPR-10670
Add HTTP method to RequestDataValueProcessor method

Issue: SPR-10041, SPR-10652
Add accept(String) method to mock request builder

Issue: SPR-10390
Add getResult/hasResult methods to DeferredResult

Issue: SPR-10603
Fix getters to match setters in RMHA

Issue: SPR-10519
Inject @Configuration BeanFactory before autowire

Add EnhancedConfigurationBeanPostProcessor to inject the BeanFactory
into EnhancedConfiguration classes before the
AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues method
is called.

Prior to this commit it was possible for @Autowire in a @Configuration
class to invoke an enhanced configuration class method before the
BeanFactory was injected. This is due to the fact that the
AutowiredAnnotationBeanPostProcessor was called before
AbstractAutowireCapableBeanFactory.invokeAwareMethods().

Issue: SPR-10668
Skip abstract beans in getBeansWithAnnotation()

Update BeanFactory.getBeansWithAnnotation() to skip any abstract
bean definitions.

Issue: SPR-10663
Use 'Integer' not 'int' in queryForObject  docs

Update queryForObject calls in the JDBC reference documentation to
use 'Integer.class' rather than the unsupported 'int.class'.

Issue: SPR-10651
SimpleKeyGenerator to replace DefaultKeyGenerator

Introduce new SimpleKeyGenerator class to supersede DefaultKeyGenerator.
Unlike DefaultKeyGenerator, no collisions will occur with the keys
generated by SimpleKeyGenerator as the full parameter values are
considered within the SimpleKey.equals(...) method.

The SimpleKeyGenerator is now the default class used when no explicit
generator is configured.

Issue: SPR-10237
Add missing @since tag to SimpleKey
Polish cache abstraction code

Polish cache abstraction code and refactor CacheAspectSupport.
Allow @CachePut 'key' SpEL to refer to #result

Allow the @CachePut 'key' SpEL to refer to the result of the method call
via a '#result' variable.

This change is particularly useful when working with JPA entities that
have generated @Id values since the ID will often not be available
until the entity has been saved.

Issue: SPR-10664