@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