Polish Spring MVC Test code

Remove use of UriTemplate in MockMvcRequestBuilders.
Rely on UriComponentsBuilder instead.

Decode query params before setting them on MockHttpServletRequest.

Add more options to model result matching for the count of errors.

Ignore white spaces and comments when comparing XML.
Fix issue in message conversion

This change ensures that when the Accept and the Producible media types
are equally specific, we use the one from the Accept header, which may
for example carry a different charset.
Add file upload test to Spring MVC Test
Prevent memory leaks with @Configuration beans

Refactor ConfigurationClassEnhancer to allow cglib caching of
generated classes.  Prior to this commit each enhanced @Configuration
class would consume permgen space when created.

The CallbackFilter and Callback Types are now defined as static final
members so that they can be shared by all enhancers.  Only the
callbackInstances remain specific to a @Configuration class and
these are not used by cglib as part of the cache key.

Issue: SPR-9851
Merge pull request #166 from philwebb/SPR-9851

# By Phillip Webb
* SPR-9851:
  Prevent memory leaks with @Configuration beans
Remove trailing whitespace
SpEL support for methods and properties on class …

Update the ReflectiveMethodResolver and ReflectivePropertyAccessor
to allow methods and properties of java.lang.Class to be resolved
when the target object is a class.

Issue: SPR-9017
Merge pull request #136 from philwebb/SPR-9017

* SPR-9017:
  SpEL support for methods and properties on class …
  Remove trailing whitespace
Polish trailing whitespace
Allow MapToMap conversion to work when the target map does not have a
default constructor (as long as a new map copy is not required).

Issue: SPR-9284
Merge pull request #155 from philwebb/SPR-9284

* SPR-9284:
  Allow MapToMap conversion to work when the target map does not have a default constructor (as long as a new map copy is not required).
  Polish trailing whitespace
Provider injection into prototype beans works for method parameters as well

Issue: SPR-9630
BeanWrapper does not fall back to String constructor if ConversionService attempt failed before

Issue: SPR-9865
OpDivide does not return a TypedValue for its operate result (consistent with OpMultiply)

Issue: SPR-9869
Jaxb2Marshaller has non-synchronized access to the JAXBContext once initialized

Issue: SPR-9867
LoadTimeWeaverAware beans are consistently being created early for JPA weaving to work reliably

Includes a change for factory methods that declare their return type as FactoryBean: When asked for a specific type match (e.g. LoadTimeWeaverAware), we do check early singleton instances as well (reusing the instances that we create for getObjectType checks). This is necessary in order to make @Bean method introspection as capable as XML bean definition introspection, even in case of the @Bean method using a generic FactoryBean declaration for its return type (instead of the FactoryBean impl class).

Issue: SPR-9857
Only cache by-type lookups if configuration has been marked as frozen

Issue: SPR-9448
Mention matching bean names in exception message in case of non-unique EntityManagerFactory lookup
Only cache by-type lookups if configuration has been marked as frozen

Issue: SPR-9448
LoadTimeWeaverAware beans are consistently being created early for JPA weaving to work reliably

Includes a change for factory methods that declare their return type as FactoryBean: When asked for a specific type match (e.g. LoadTimeWeaverAware), we do check early singleton instances as well (reusing the instances that we create for getObjectType checks). This is necessary in order to make @Bean method introspection as capable as XML bean definition introspection, even in case of the @Bean method using a generic FactoryBean declaration for its return type (instead of the FactoryBean impl class).

Issue: SPR-9857