Add marshalling hooks in Jaxb2RootElementHttpMessageConverter

Allow Jaxb2RootElementHttpMessageConverter subclasses to customize
the {@link Marshaller} and the {@link Unmarshaller} created by the
message converter.

Issue: SPR-11488
Move customize(Un)Marshaller methods to abstract class

Issue: SPR-11488
Merge pull request #474 from sdeleuze/SPR-11488
Add Servlet 3.1 methods to mock request

Issue: SPR-11492
Added explicit note on thread safety to JdbcTemplate variants

Issue: SPR-11478
Added documentation on how to set up JSR-303 method validation

Also removed outdated Struts references and made use of 'javadocs' term consistent.

Issue: SPR-11473
Update ref. manual to favor constructor injection

The breakout box named "Constructor-based or setter-based DI?" in the
reference manual currently recommends the use of setter injection.

This commit refines this text to align with current best practices and
now favors constructor injection over setter injection.

Issue: SPR-11459
Merge pull request #466 from olivergierke/SPR-11459

* SPR-11459:
  Update ref. manual to favor constructor injection
Fix DocBook to AsciiDoc conversion errors

 - "__ `text`__" --> "__`text`__"

 - "`text` s" --> "`text`s"
Add smart logging for disconnected SockJS clients

The Servlet API does not provide notifications when a client
disconnects, see see https://java.net/jira/browse/SERVLET_SPEC-44.
Therefore network IO failures may occur simply because a client has
gone away. Before this change that could fill logs with unnecessary
stack traces.

After this change we make a best effort to identify such network
failures, on a per-server basis (tested with Jetty, Tomcat, Glassfish,
and WildFly), and log them under a separate log category.

A simple one-line message is logged at DEBUG level (i.e. no stack trace)
while a full stack trace is shown at TRACE level.

Issue: SPR-11438
Polish AbstractSockJsSession
Clarify exception handling in converter

Issue: SPR-11500
Update reference documentation for SPR-11486

Issue: SPR-11486
Outdated code example correction in section 10.3.6
Merge pull request #476 from platan/master

Update MockRestServiceServer example in reference manual
Aggregate JUnit and TestNG test reports

Prior to this commit, the test results for JUnit tests overwrote the
results for TestNG tests in the HTML test report generated by the
Gradle build.

This commit addresses this problem by introducing a new
'aggregateTestReports' task in the spring-test module and making the
'check' task depend on it.

To see aggregated reports in the spring-test module, execute either
`gradle build` or `gradle check`. Executing `gradle test` alone will
not trigger test report aggregation.

Issue: SPR-11509
AbstractApplicationEventMulticaster filters listeners against their type first, avoiding eager retrieval of listener instances for non-matching events

Issue: SPR-11501
Optimized DefaultResourceLoader's getResource implementation for "/..." paths, not relying on URL parsing exceptions for such a common case anymore

Issue: SPR-8283
Log4jWebConfigurer does not try to parse empty "log4jRefreshInterval" context-param

Issue: SPR-11507
Fix SimpleKey equality with array argument

Prior to this commit, an array argument was not handled properly in
SimpleKey#equals and SimpleKey#hashCode. As a result, two method
invocations with the same array argument lead to two different keys
and therefore two different entries in the cache.

This commit uses deepEquals and deepHashCode to properly handle
methods that have arguments that are array types.

Issue: SPR-11505