Clarify use of @Bean with @EnableAsync executors

Update Javadoc to indicate that the getAsyncExecutor() method may be
optionally annotated with @Bean and in such circumstance the
executor.initialize() method need not be called.

Issue: SPR-9934
Add Spring Framework integration with Tiles 3

Tiles 3 has modified packages and classes as well as additional
dependencies, notably "tiles-request-api", which is a request/response
abstraction independent of Servlet and JSP APIs.

In order to have both Tiles 2 and Tiles 3 integrations, the source for
the Tiles 3 integration is in a separate project spring-webmvc-tiles3.
The build process merges the compiled Tiles 3 integration classes into
the spring-webmvc module so in effect it contains both the Tiles 2 and
the Tiles 3 integrations.

This change originated as a pull request at spring-framework-issues:
https://github.com/SpringSource/spring-framework-issues/pull/30

And was additionally updated:
https://github.com/SpringSource/spring-framework-issues/commit/1f64be4aa59b4766f9cc5fc6ead621d29f92a0d6

Issue: SPR-8825
Deprecate pre 3.1 @MVC support classes

Issue: SPR-10005
Define behavior of null Callable or DeferredResult

When a controller method declares Callable or DeferredResult as its
return value, and returns null, async processing will not start and
the request will be considered "handled" by the controller method.

Issue: SPR-9951
Fix Javadoc references to incorrect XML

Replace references to <task:annotation-config> with
<task:annotation-driven>
Polish Javadoc

Minor Javadoc reformat to prevent erroneous eclipse warnings
Document @Enable* annotations

Update reference manual with details of Java configuration @Enable*
annotations. Examples of Java style @Configuration is provided
when appropriate alongside existing XML samples.

Several existing @Configuration samples have been changed to placing
the @Enable annotation below the @Configuration annotation.
This has been done to provide consistency with existing Javadoc.

Issue: SPR-9920
Replace reference to aspectjrt with aspectjweaver

Replace reference to aspectjrt.jar with aspectjweaver.jar since
aspectjrt is a subset of aspectjweaver and the full jar is required
by Spring.

Issue: SPR-8896
Consistent spelling for US/UK words

Replaced behaviour and summarised with US variants that seem to be
more prevalent in the rest of the document.
Polish XML snippets showing XSD imports

Remove <literal> tag from XML samples to improve the look of the
HTML output.
Document cache and jdbc namespaces

Update the XSD section of the document with details of the cache and
jdbc namespace.

Issue: SPR-9824
Support GenericArrayType in GenericTypeResolver method

Before this change GenericTypeResolver.resolveType supported
TypeVariable's and ParameterizedType's only. Now it also supports
GenericArrayType.
Update Joda Time references in documentation

Update documentation to reflect the fact that Joda Time is no longer
required to use the @DateTimeFormat annotation.
Document global date time format configuration

Update reference documentation to detail how global date and time
formats can be specified.

Issue: SPR-9952
Polish whitespace
Call ConversionService for null SpEL values

Update SpEL boolean operators to always call the ConversionService
for null values. Primarily to allow null values to be treated as
false by overriding GenericConversionService.convertNullSource().

Issue: SPR-9445
Merge pull request #85 from obecker/master

* pull85:
  Call ConversionService for null SpEL values
  Polish whitespace
Fix issue with @RequestBody args that are type vars

The change to support generic @RequestBody arguments introduced in
3.2 M2 also introduced a regression in reading arguments that are
type variables. This change fixes the issue.

Issue: SPR-9964
Support Gradle/maven with multi version artifacts

Previously the publish-maven.gradle only supported having a single
artifact be marked as optional or provided. This causes problems now
that we are building modules that support multiple versions of an
artifact. For example, we compile against two versions of Tiles
artifacts with identical names, both of which need to be marked
optional.

This updates publish-maven.gradle to find all the artifacts and mark
them as optional as apposed to the first entry.
Merge pull request #185 from rwinch/maven-multi-version-artifact

* rwinch-maven-multi-version-artifact:
  Support Gradle/maven with multi version artifacts