DefaultListableBeanFactory's registerBeanDefinition only calls resetBeanDefinition in case of pre-existing bean definition or pre-existing singleton instance

Issue: SPR-8318
Polishing
Polish WebSocket namespace
Fix white spaces
Add missing handshake-interceptor namespace support

Issue: SPR-11845
Polish WebSocket Java config
Add missing HandshakeInterceptor for STOMP endpoints

Issue: SPR-11845
Merge HandshakeInterceptor-related config updates
Remove FreeMarker/Velocity/TilesConfigurer MVC config

After some further discussion:

The MVC config simplifies ViewResolver configuration especially where
content negotiation view resolution is involved.

The configuration of the underlying view technology however is kept
completely separate. In the case of the MVC namespace, dedicated
top-level freemarker, velocity, and tiles namespace elements are
provided. In the case of the MVC Java config, applications simply
declare FreeMarkerConfigurer, VelocityConfigurer, or TilesConfigurer
beans respectively.

Issue: SPR-7093
ConfigurationClassParser processes late-arriving DeferredImportSelectors as regular import selectors

Also contains refined exception handling, treating regular class loading and ASM-based loading consistently in terms of exception wrapping, and always mentioning the current configuration class in all exception messages.

Issue: SPR-11997
NestedIOException can use IOException constructor with cause argument on JDK 6+
Use regex comparison in WebSocket stats test

The output includes thread pool information which appears to not vary
enough to cause failures locally but does so on the build server.
Re-obtain port on every WebSocket integration test

This change adds a WebSocketTestServer setup method that initializes
the server and obtains a new port.

In turn AbstractWebSocketIntegrationTests invokes the new method from
its setup method thus ensuring a new port is used on every test.