Reduce log level for message re: missing annotation

Previously (since Spring 3.1.1) RecursiveAnnotationAttributesVisitor
logs at level WARN when ASM parsing encounters an annotation or an (enum
used within an annotation) that cannot be classloaded. This is not
necessarily indicative of an error, e.g. JSR-305 annotations such as
@Nonnull may be used only for static analysis purposes, but because
these annotations have runtime retention, they remain present in the
bytecode. Per section 9.6.1.2 of the JLS, "An annotation that is present
in the binary may or may not be available at run-time via the reflective
libraries of the Java platform."

This commit lowers the log level of these messages from warn to debug,
but leaves at warn level other messages dealing with the ability
reflectively read enum values from within annotations.

Issue: SPR-9233
Polish

Issue: SPR-6870
Cache by-type lookups in DefaultListableBeanFactory

Prior to this change, by-type lookups using DLBF#getBeanNamesForType
required traversal of all bean definitions within the bean factory
in order to inspect their bean class for assignability to the target
type. These operations are comparatively expensive and when there are a
large number of beans registered within the container coupled with a
large number of by-type lookups at runtime, the performance impact can
be severe. The test introduced here demonstrates such a scenario clearly.

This performance problem is likely to manifest in large Spring-based
applications using non-singleton beans, particularly request-scoped
beans that may be created and wired many thousands of times per second.

This commit introduces a simple ConcurrentHashMap-based caching strategy
for by-type lookups; container-wide assignability checks happen only
once on the first by-type lookup and are afterwards cached by type
with the values in the map being an array of all bean names assignable
to that type. This means that at runtime when creating and autowiring
non-singleton beans, the cost of by-type lookups is reduced to that of
ConcurrentHashMap#get.

Issue: SPR-6870
Merge branch cbeams/SPR-6870

* SPR-6870:
  Cache by-type lookups in DefaultListableBeanFactory
  Polish
Update 3.2 M1 changelog
Improve wording & grammar in SmartValidator Javadoc
Suppress 'rawtypes' warnings in SpringValidatorAdapter
Update 3.2 M1 changelog

Issue: SPR-9413, SPR-9401, SPR-4868
ServletContextResource's getFile implementation falls back to getRealPath for non-existent files (SPR-8461)
fixed StandardServletMultipartResolver compatibility with Resin (SPR-9299)
EhCacheFactoryBean applies listeners and enabled/disabled flags to existing cache regions as well (SPR-9392)
polishing
fixed WindowState comparison
added initial support for JCache (JSR-107) compliant cache providers
final preparations for 3.2 M1 release
Polishing
Update 3.2 M1 changelog

Ensuring consistent use of the present tense for entries.
Improve dependency management for spring-test

In Spring 3.1 the spring-test Maven artifact did not have a required
dependency on spring-core, but there is practically no part of
spring-test that can be used without spring-core. Most test utilities
that are intended to be stand-alone utilities in fact use utility
classes from spring-core (e.g., ReflectionTestUtils). Even some of the
web mocks/stubs use spring-core (e.g., DelegatingServletInputStream).

In addition, the current Gradle build configuration for the spring-test
module is very simplistic -- in that it does not explicitly list any
optional dependencies such as the Servlet and Portlet APIs -- and it
defines a 'compile' dependency on spring-webmvc-portlet.

The resulting Maven dependencies in the generated POM are therefore not
what a typical consumer of the spring-test artifact would reasonably
expect.

To address these issues, the Gradle build configuration for the
spring-test module now explicitly defines the following 'compile'
dependencies:

 - spring-core
 - spring-webmvc, optional
 - spring-webmvc-portlet, optional
 - junit, optional
 - testng, optional
 - servlet-api, optional
 - jsp-api, optional
 - portlet-api, optional
 - activation, provided

The only required dependency is now spring-core; all other dependencies
are 'optional'.

Issue: SPR-8861
Improve dependency management for spring-test

Updated the changelog.

Issue: SPR-8861
Polish

 - Convert leading whitespace => tabs
 - Fix or suppress generics warnings as appropriate

Issue: SPR-8774, SPR-9299, SPR-9392