Upgrade HttpComponentsHIRE to HttpComponents 4.3

Previously, HttpComponentsHttpInvokerRequestExecutor was not compatible
with the new API of HttpComponents 4.3. Specifically, it is not possible
to update the socket and read timeouts on the HttpClient itself anymore.

We actually already updated HttpComponentsClientHttpRequestFactory for a
similar problem in SPR-11442: if we detect an older HttpClient
implementation, we update the timeout directly on the client. If that's
not the case, we keep the value in the factory itself and use it when a
new HttpRequest needs to be created.

This commit also uses the new API to create a default HttpClient and
therefore requires HttpComponents 4.3. As mentioned above, it is still
possible to use deprecated HttpClient instances against this executor.

Issue: SPR-11113
Better doc reference of CachingConfigurer

Update the documentation to better reflect the fact that a @EnableCaching
configuration class must implement CachingConfigurer in order to provide
advanced customizations to the cache abstraction.
Set ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE in DefaultMockMvcBuilder

Issue: SPR-12553
Polish MockMvcBuilders tests
Polish upgrade to HttpComponents 4.3

Polish fbe605123 to make explicit the fact that a null RequestConfig
can be used to force the defaults of the current HttpClient.

Issue: SPR-11113
Customize connection request timeout

Prior to this commit it was not possible to easily customize the
connection request timeout used by the HttpClient. Both
`HttpComponentsClientHttpRequestFactory` and
`HttpComponentsClientHttpRequestFactoryTests` have been updated to
support a `connectionRequestTimeout` property.

Issue: SPR-12166
Improve logging of registerScope

Issue: SPR-12519
AbstractFallbackTransactionAttributeSource's DefaultCacheKey takes targetClass into account (again)

Issue: SPR-12536
(cherry picked from commit c087e51)
AbstractApplicationEventMulticaster populates ListenerRetriever cache in fully synchronized fashion

Issue: SPR-12545
(cherry picked from commit 61a6bc0)
Consistent bridge method handling in annotation post-processors

Issue: SPR-12495
Preparations for Jackson 2.5

Issue: SPR-12565
Latest dependency updates (Groovy 2.3.9, JRuby 1.7.17, SLF4J 1.7.9)
ReflectionHelper's isFirstEntryInArray properly handles empty arrays

Issue: SPR-12522
Polishing