Fix memory leak in ConcurrentReferenceHashMap

Update ConcurrentReferenceHashMap to protect against references that
have been garbage collected but for some reason do not appear as a
`pollForPurge` result.

Also added purgeUnreferencedEntries() method to allow for programmatic
cleanup.

Issue: SPR-11440
(cherry picked from commit 2b4c81e6)
Add processExternalEntities support to OXM

Update OXM AbstractMarshaller to support processing of external
XML entities. By default external entities will not be processed.

Issue: SPR-11376
Update changelog for 3.2.8
Next development version
Refactor async result handling in Spring MVC Test

This change removes the use of a CountDownLatch to wait for the
asynchronously computed controller method return value. Instead we
check in a loop every 200 milliseconds if the result has been set.
If the result is not set within the specified amount of time to wait
an IllegalStateException is raised.

Additional changes:
 - Use AtomicReference to hold the async result
 - Remove @Ignore annotations on AsyncTests methods
 - Remove checks for the presence of Servlet 3

Issue: SPR-11516
Fixed content length check in XmlValidationModeDetector

Issue: SPR-11477
(cherry picked from commit 1763bfb)
Log4jWebConfigurer does not try to parse empty "log4jRefreshInterval" context-param

Issue: SPR-11507
(cherry picked from commit 9b77157)
instantiateUsingFactoryMethod avoids NPE and reports argument types in case of explicitArgs and resolved generic arguments as well

Issue: SPR-11517
(cherry picked from commit ad31777)
KeyGenerators should not return a plain array parameter as raw key but rather always handle that case in a deepHashCode fashion

Issue: SPR-11505
(cherry picked from commit e50cff4)
SpringBeanELResolver's setValue should not throw PropertyNotWritableException if provided value is identical to current bean instance

Issue: SPR-11502
(cherry picked from commit 7972b31)
DefaultListableBeanFactory only puts 'cache-safe' Class keys into its by-type cache

Issue: SPR-11520
(cherry picked from commit 93c8b7a)
Fix double SPeL evaluation of parameter

 When a node of an SPeL expression was a call to a bean referenced
 in a method argument, the expression was resolved twice.

 The resolved arguments are now specified to MethodValueRef instead
 of resolving the arguments again in the constructor

 Issue: SPR-11445
(cherry picked from commit 519799e)
CollectionToCollectionConverter avoids collection copy for untyped collection when simply returning source anyway

Also uses addAll instead of iteration over untyped collection now, supporting optimized addAll in target collection type, and avoids repeated getElementTypeDescriptor calls.

Issue: SPR-11479
(cherry picked from commit bea94d5)
SpEL property-not-found message hints at non-public method/field

Issue: SPR-11535
AbstractFlashMapManager needs to decode parameter names

Also includes general alignment with the 4.0.3 versions of AbstractFlashMapManager and FlashMapManagerTests.

Issue: SPR-11504
Polishing
Upgraded to TestNG 6.8.8 and Hibernate 4.2.10
Revised naming for prototype inner beans to avoid excessive unique name calculation

Restored original singleton-only adaptInnerBeanName behavior, avoiding endless unique name calculation for every single prototype instance. Non-named inner BeanDefinition objects now suffixed with an identity hex code analogous to non-named XML bean definitions, largely avoiding naming collisions to begin with. After SPR-11246, post-processors can deal with unstable classes per bean name, so occasional collisions aren't a hard problem anymore.

Issue: SPR-11545
(cherry picked from commit 5308b3e)
BufferedImageHttpMessageConverter ignores empty MIME types

Issue: SPR-11581
(cherry picked from commit 90e3dbb)
Consistently applied appropriate ByteArrayOutputStream initial capacities across the codebase

Issue: SPR-11594
(cherry picked from commit dd7f54c)