HttpHeaders fails getAllow if set to EmptyCollection

Prior to this commit, calls to getAllow would fail is setAllow was set
to an EmptyCollection right before.

    java.lang.IllegalArgumentException: No enum constant
    org.springframework.http.HttpMethod

This commit fixes this by testing the header value for an empty value
before trying to use it to get a value from the Enum.

Issue: SPR-11917
(cherry picked from commit 9919a98)
Workaround for WFLY-3474 NullPointerException

Prior to this commit, the ServletResponseHttpHeaders.get method
would throw an NPE when used under Wildfly 8.0.0.Final and 8.1.0.Final.
This can be traced to WFLY-3474, which throws an NPE when calling
HttpServletResponse.getHeaders("foo") and that header has not
been defined prior to that.
This would cause NPE being thrown by AbstractSockJsService when
checking for CORS HTTP headers in the server HTTP response.

This commit surrounds that method call in AbstractSockJsService and
guards against this issue.

Issue: SPR-11919
(cherry picked from commit 24cdefb)
WebSphereUowTransactionManager exposes SmartTransactionObject

Issue: SPR-11876
(cherry picked from commit 03f3412)
MBeanExportConfiguration's SpecificPlatform properly calls afterPropertiesSet

Also makes the nested SpecificPlatform enum public for Spring Boot to reuse it.

Issue: SPR-11877
(cherry picked from commit 6f68b03)
PathMatchingResourcePatternResolver's findPathMatchingResources needs to check for VFS before checking isJarResource

ResourceUtils isFileURL also detects "vfsfile" as a file system protocol (again).

Issue: SPR-11887
FrameworkPortlet properly initializes StandardPortletEnvironment's property sources and exposes local PortletRequestAttributes in case of pre-bound ServletRequestAttributes as well

Issue: SPR-11816
Issue: SPR-11295
SelectTag consistently checks specified 'multiple' attribute now, never falling back to forceMultiple in case of user-provided value

Issue: SPR-11903
(cherry picked from commit 779ca99)
UriComponentBuilder allows for multiple independent build() calls on same builder instance

Issue: SPR-11885
(cherry picked from commit d239016)
DefaultSubscriptionRegistry's removeSubscriptionInternal defensively handles non-existing destinations

Issue: SPR-11832
(cherry picked from commit 5a8e470)
SharedEntityManagerCreator immediately throws TransactionRequiredException on persist, merge, remove etc (as required by JPA spec)

Issue: SPR-11923
(cherry picked from commit 045d735)
DefaultAdvisorChainFactory never passes null into ClassFilter, enabling async advisor to work without target class as well

Issue: SPR-11910
(cherry picked from commit a9b650f)
TypeDescriptor's nested type traversal leniently returns null in case of unresolvable nested type

Issue: SPR-11898
(cherry picked from commit d663580)
ConfigurationClassPostProcessor skips pre-processed bean definitions now (avoiding side effects in case of multiple CCPPs)

Issue: SPR-11858
(cherry picked from commit b625512)
ConfigurationClassParser falls back to ASM-based resolution of member classes in case of NoClassDefFoundError

Issue: SPR-11844
(cherry picked from commit 6aa9c40)
AnnotationUtils defensively catches and logs unexpected exceptions from retrieval attempts (proceeding like the annotation wasn't there)

Issue: SPR-11874
(cherry picked from commit 2c0c081)
Cache Class.getDeclaredMethods() results and avoid pattern matching in isCglibRenamedMethod as far as possible

Issue: SPR-11882
Issue: SPR-11894
AbstractAutowireCapableBeanFactory's createBean/autowireBean/configureBean use CacheUtils.isCacheSafe to re-enable PropertyDescriptor caching

Issue: SPR-11875
(cherry picked from commit 974bd43)
Consistent declaration of private static final logger variables

Issue: SPR-11905
(cherry picked from commit 18131bf)
Polishing (backported from master)
Reference documentation overhaul (backported from master)

Issue: SPR-11853
Issue: SPR-11906