Properly evaluate @Conditional in case of multiple imports for same config class

Issue: SPR-11788
JmsResourceHolder checks for nested DataSource transactions as well (for Oracle AQ compatibility)

Issue: SPR-11791
Servlet/PortletResponse supported as a resolvable dependency now (in particular for web controllers)

This feature required support for response exposure on Servlet/PortletRequestAttributes, instead of just in the Servlet/PortletWebRequest subclasses.

Issue: SPR-11795
Properly evaluate @Conditional in case of multiple imports for same config class (fixing regression in Spring Boot)

Issue: SPR-11788
(cherry picked from commit 7d78c65)
Servlet 3 multipart request implements getParameterNames defensively (for WebLogic 12 compatibility)

This commit also includes lazy resolution support for StandardServletMultipartResolver, along the lines of existing lazy mode in CommonsMultipartResolver.

Issue: SPR-11074
Issue: SPR-11730
Add MessageSendingOperations for JMS

This commit adds a JMS implementation of MessageSendingOperations,
allowing to send JMS messages using Spring's standard Messaging
abstraction.

MessagingMessageConverter is a standard JMS's MessageConverter that
can convert Spring's Message to JMS message and vice versa. Existing
infrastructure has been updated to use this implementation.

Issue: SPR-11772
Building against Groovy 2.3.1
ServletRequestAttributes skips well-known immutable values when updating accessed session attributes

Issue: SPR-11738
Refined check for NoClassDefFoundError in getTestExecutionListeners()

Issue: SPR-11804
Consistently log Class.getName() instead of Class.toString(), avoiding double class term in log message

Issue: SPR-11804
Building against latest javax.el 2.2.x version
Add ResponseBodyInterceptor

This change introduces a new ResponseBodyInterceptor interface that can
be used to modify the response after @ResponseBody or ResponseEntity
methods but before the body is actually written to the response with the
selected HttpMessageConverter.

The RequestMappingHandlerAdapter and ExceptionHandlerExceptionResolver
each have a property to configure such interceptors. In addition both
RequestMappingHandlerAdapter and ExceptionHandlerExceptionResolver
detect if any @ControllerAdvice bean implements ResponseBodyInterceptor
and use it accordingly.

Issue: SPR-10859
Refactor @JsonView support w/ ResponseBodyInterceptor

The newly added support for ResponseBodyInterceptor is a good fit for
the (also recently added) support for the Jackson @JsonView annotation.

This change refactors the original implementation of @JsonView support
for @ResponseBody and ResponseEntity controller methods this time
implemented as an ResponseBodyInterceptor.

Issue: SPR-7156
Consistently log Class.getName() instead of Class.toString(), avoiding double class term in log message

Issue: SPR-11804
StringUtils.parseLocaleString parses variant correctly when variant contains country code

This commit also includes a JUnit 4 style revision of StringUtilsTests and ObjectUtilsTests.

Issue: SPR-11806
Latest patches from ASM trunk
Polishing
UriComponentsBuilder.toUriString instead of RequestContext.getMvcUrl (breaking cyclic dependency between web.servlet.support and web.servlet.mvc)
Consistent use of IllegalStateException instead of InternalError for UnsupportedEncodingException cause
Further UriComponentsBuilder javadoc revision
(cherry picked from commit 54636b3)