Verify ServletCtxAware beans are processed in WAC tests

SPR-11145 claims that ServletContextAware beans declared in an
ApplicationContext loaded for an integration test by the TestContext
framework (TCF) do not have their setServletContext() methods invoked
if the tests are executed manually using JUnit 4.11.

This commit verifies that such ServletContextAware beans are processed
properly regardless of how the test was launched. Specifically:

 - A ServletContextAwareBean has been introduced.

 - BasicAnnotationConfigWacTests has been retrofitted with a
   ServletContextAwareBean in its context.

 - ServletContextAwareBeanWacTests has been introduced to execute
   BasicAnnotationConfigWacTests manually via JUnitCore.

Issue: SPR-11145
Fix test in Jaxb2RootElementHttpMessageConverterTests
Fine-tune default mime type in message broker config

Issue: SPR-11370
Add null check after message conversion

AbstractMessageSendingTemplate now checks if MessageConverter.toMessage
returns null and raises an exception.

Issue: SPR-11370
GenericConversionService matches converters by full generic target type, allowing for the registration of multiple converters from the same source type to different collection types

Issue: SPR-11369
Defensively handle ServletRequestAttributes casting in requestDestroyed callback

Issue: SPR-11378
Polishing

Issue: SPR-11369
Fix failing test
Backwards-compatible handling of generic and raw collection converters

Issue: SPR-11369
Avoid repeated assignability check for raw class on fallback match, since AutowireCandidateResolver is only being called for basic type matches to begin with

Issue: SPR-9965
Upgraded to Apache HttpComponents HttpClient 4.3.2

Issue: SPR-11383
Revised javadoc and related polishing

Issue: SPR-11383
Add external entity test

Issue: SPR-11376
Ensure all tests are executed in the Gradle build

Prior to this commit several test classes named "*Test" were not
recognized as tests by the Gradle build. This is due to the configured
inclusion of '**/*Tests.*' which follows Spring's naming convention for
test classes.

This commit addresses this issue by:

 - Renaming real test classes consistently to "*Tests".
 - Renaming internal test classes to "*TestCase".
 - Renaming @WebTest to @WebTestStereotype.
 - Disabling broken tests in AnnoDrivenStaticEntityMockingControlTest.
 - Modifying the Gradle build configuration so that classes ending in
   either "*Tests" or "*Test" are considered test classes.

Issue: SPR-11384
Polish Javadoc for @MockStaticEntityMethods & its aspect
Fix failing test
Introduced "spring.jdbc.getParameterType.ignore" property

Issue: SPR-11386
Related polishing

Issue: SPR-11386
Polishing

Issue: SPR-11386
Use AtomicInteger instead of local synchronization around int field

Issue: SPR-11103