Moved SpringFactoriesLoader to io.support in order to resolve tangle.
Refactor BeanInfoFactory

This commit refactors the BeanInfoFactory so that:

 - supports() and getBeanInfo() are folded into one, so that getBeanInfo()
    returns null if a given class is not supported.
 - CachedIntrospectionResults now uses SpringFactoriesLoader
LinkedCaseInsensitiveMap checks for uniqueness of case-insensitive keys now

Issue: SPR-9754
@Import'ed configuration classes get properly registered in case of same class name

Issue: SPR-9243
polishing
same-named unit from persistence.xml overrides in case of conflict with default unit

Issue: SPR-9741
Spring-backed DataSources consistently implement JDBC 4.0's Wrapper interface

Issue: SPR-9770
MutablePropertySources log statements guarded by isDebugEnabled

Issue: SPR-9670
Expression detection properly handles cached String literals

Issue: SPR-9670
BeanFactoryAnnotationUtils throws NoSuchBeanDefinitionExceptions instead of IllegalStateExceptions

Issue: SPR-9652
@Import'ed configuration classes get properly registered in case of same class name

Issue: SPR-9243
Optimize use of HandlerMethod and sub-classes

While HandlerMethod instances are cached for lookup purposes, a new
ServletInvocableHandlerMethod instance has to be created prior to each
invocation since handlers may have non-singleton scope semantics.

This change reduces the overhead of creating per request instances
by using a logger with a fixed name rather than relying on getClass()
and also by copying introspected method parameters from the cached
HandlerMethod instance.

Issue: SPR-9747, SPR-9748
Cache AntPathStringMatcher instances

AntPathMatcher now caches AntPathStringMatcher instances by pattern
thus avoiding java.util.regex.Pattern recompilation.

Issue: SPR-9749
@Import'ed configuration classes get properly registered in case of same class name (second try)

Issue: SPR-9243
SpringFactoriesLoader as the simplest possible mechanism for BeanInfoFactory loading
Add error request attribute for 500 reponses

DefaultHandlerExceptionResolver and ResponseEntityExceptionHandler now
both set the "javax.servlet.error.exception" request attribute to the
raised exception, allowing custom error pages configured via web.xml.

Issue: SPR-9653
Ignore parse errors in HttpPutFormContentFilter

Errors when parsing the request content-type, in order to find out if
the request has form content, are translated to false.

Issue: SPR-9769
Polish PortletRequestUtilsTests

Update PortletRequestUtilsTests to use Assert#assertThat and Hamcrest's
Matchers#lessThan in order to output more useful messages when tests
fail.
Fix Windows-related build issues

- Increase max heap size in gradle wrapper.
- Use MockProperties implementation to protect against security
  exceptions.
- Replace windows CRLF with LF in various tests.
- Increase Thread.sleep times to account for lack of precision on
  Windows.

Issue: SPR-9717
Protect against non-deterministic method order in JDK7

 - Allow reset of GlobalAdvisorAdapterRegistry

   Provide a reset() method allowing the GlobalAdvisorAdapterRegistry
   instance to be replaced with a fresh instance. This method has
   primarily been added to allow unit tests to leave the registry
   in a known state.

 - Protect against the fact that calls to configuration class methods
   my occur in a random order.

Issue: SPR-9779