@EnableTransactionManagement and co get detected on superclasses as well

Issue: SPR-10864
Polishing around @EnableTransactionManagement

Issue: SPR-10864
Synchronized cache creation on CacheManager

Issue: SPR-11132
Detect depends-on cycles and throw proper exception

Issue: SPR-7966
Reverted arrayToList signature to return plain List

This is necessary for source compatibility with existing callers, such as code found in Spring Integration: e.g. passing the arrayToList result into a typed HashSet constructor.
Extended testPrototypeCreationWithOverriddenAutowiredPropertiesIsFastEnough's deadline (since that test repeatedly failed on the CI server)
Always preserve target class for configuration classes in case of auto-proxying

Issue: SPR-10561
Fixed javadoc
Add XML namespace for WebSocket config

This commit adds an XML namespace equivalent of @EnableWebSocket and
@EnableWebSocketMessageBroker. Those are <websocket:handlers> and
<websocket:message-broker> respectively.

Examples can be found in the test suite.

This commit also alters the way MessageHandler's subscribe to their
respective MessageChannel's of interest. Rather than performing the
subscriptions in configuration code, the message channels are now
passed into MessageHandler's so they can subscribe themselves on
startup.

Issue: SPR-11063
Add assert AbstractStandardRequestUpgradeStrategy
Add a 'bill of materials' project for Maven users

Add 'spring-framework-bom' meta-project that contains the other projects
in a dependencyManagement section.

Issue: SPR-11138
Polish websocket xml namespace

Issue: SPR-11063
Fix casing in spring mvc namespace attributes

Update "enableMatrixVariables" and "ignoreDefaultModelOnRedirect" to
use the more conventional XML form "enable-matrix-variables" and
"ignore-default-model-on-redirect".

Both forms are now supported by `AnnotationDrivenBeanDefinitionParser`,
with newer names being defined in the 4.0 XSD and the older names
remaining in the 3.2 XSD.

Issue: SPR-11136
Polishing
Rearranged web.socket.server subpackages and introduced web.socket.config
Move WebSocketExtension to top-level package
Fix ResolvableType hashCode generation

Fix ResolvableType.hashCode() to use the source of the variable
resolver, rather than the resolver itself.
Merged web.socket.messaging.config into web.socket.config and introduced web.socket.config.annotation
Use AnnotationTransactionAttributeSource class name to avoid hard dependency on transaction.annotation package
Polishing (including removal of javadoc imports that show as package cycles in IntelliJ)