Introduce value attribute in @RestController

Stereotype annotations should support a 'value' attribute for
specifying the name of the Spring-managed component; however,
@RestController currently does not provide such an attribute.

This commit introduces a 'value' attribute in @RestController so that
developers can provide custom names for components annotated with
@RestController.

Issue: SPR-11360
Support Part/MultiPartFile arrays in ArgumentResolvers

Prior to this commit, parts of a multipart HTTP request could be
injected in @RequestPart and @RequestParam annotated arguments, when
using types:
* MultipartFile, Collection<MultiPartFile>
* javax.servlet.Part, Collection<Part>

This commits updates @RequestParam and @RequestPart argument resolvers
and now allows the array versions of those types:
* Part[]
* MultiPartFile[]

Note that the MockHtpServletRequest backing tests for standard
Servlets implementations now uses a MultiValueMap to store parts
(versus a simple hashmap).

Issue: SPR-11353
Introduced HibernateTemplate for Hibernate 4 as a migration helper

Note that this variant of HibernateTemplate is stripped down in terms of Session management options and just provides a current-session style with a fallback to a temporary session-per-operation.  Furthermore, in the latter fallback mode, only read operations are supported, just like with a JPA EntityManager.

Issue: SPR-11291
Polishing

Issue: SPR-11291
Consistent use of ${hibernate4Version} in build.gradle
Polishing
Fixed type resolution in case of inconsistencies between read and write method

Issue: SPR-11361
Added test for inconsistency between read and write method

Issue: SPR-11361
Add RestTemplate constructor with custom converters

Prior to this commit, RestTemplate's constructors were all initializing
default HTTPMessageConverters. Its API provides a way to replace
those converters with custom ones, but default converters are already
defined and initialized at that point, which can be an issue in some
cases (performance, classpath...).

This commits adds a new constructor for RestTemplate with a list
of message converters as argument. With this new constructor,
default message converters are never initialized.

Issue: SPR-11351
Fixed 'globalJobListeners'/'globalTriggerListeners' to work with Quartz 2.0 & 2.1 as well

Issue: SPR-11362
Consistent use of headersExtractor() template method
Minor corrections/typos to "27. Cache Abstraction" docs section
Polishing
Merge pull request #453 from kryger/master

Fix typos and grammar in Cache Abstraction reference doc
Polish Hibernate support and tests

 - Fix Javadoc in HibernateTemplate so that it compiles in Eclipse.
 - Suppress generics warnings in HibernateTemplateTests.
 - Remove unnecessary deprecation warning suppression in constructor for
   LocalSessionFactoryBuilder.
Minor polishing after previous polish step ;-)
Fixed regression with fallback for non-resolvable property type
Dropped explicit paragraph on web.xml version declaration

Issue: SPR-11364
(cherry picked from commit 36ab65a)
Next development version
Fixed LiveBeansView to not produce invalid JSON if last bean is not eligible

Also introducing overridable isBeanEligible template method.

Issue: SPR-11366