Add tests for ImportSelector meta-data

Issue: SPR-12059
Support automatic discovery of default TELs

Prior to this commit, there was no declarative mechanism for a custom
TestExecutionListener to be registered as a default
TestExecutionListener.

This commit introduces support for discovering default
TestExecutionListener implementations via the SpringFactoriesLoader
mechanism. Specifically, the spring-test module declares all core
default TestExecutionListeners under the
org.springframework.test.context.TestExecutionListener key in its
META-INF/spring.factories properties file, and third-party frameworks
and developers can contribute to the list of default
TestExecutionListeners in the same manner.

 - AbstractTestContextBootstrapper uses the SpringFactoriesLoader to
   look up the class names of all registered default
   TestExecutionListeners and sorts the instantiated listeners using
   AnnotationAwareOrderComparator.

 - DefaultTestContextBootstrapper and WebTestContextBootstrapper now
   rely on the SpringFactoriesLoader mechanism for finding default
   TestExecutionListeners instead of hard coding fully qualified class
   names.

 - To ensure that default TestExecutionListeners are registered in the
   correct order, each can implement Ordered or declare @Order.

 - AbstractTestExecutionListener and all default TestExecutionListeners
   provided by Spring now implement Ordered with appropriate values.

 - Introduced "copy constructors" in MergedContextConfiguration and
   WebMergedContextConfiguration

 - SpringFactoriesLoader now uses AnnotationAwareOrderComparator
   instead of OrderComparator.

Issue: SPR-11466
Merge from sbrannen/SPR-11466

* SPR-11466:
  Support automatic discovery of default TELs
Lookup methods can support arguments, find a target bean based on the return type, and be identified by an @Lookup annotation

Issue: SPR-7431
Issue: SPR-5192
Polishing
Fixed fragile tests for @Bean method overloading
Polishing
Support merging custom TELs with default TELs

Prior to this commit, if a custom TestExecutionListener was registered
via @TestExecutionListeners the defaults would not be registered. Thus,
if a user wanted to declare a custom listener and use the default
listeners, the user was forced to manually declare all default
listeners in addition to any custom listeners. This unfortunately
required that the user know exactly which listeners were registered by
default. Moreover, the set of default listeners can change from release
to release, and with the support for automatic discovery of default
listeners introduced in SPR-11466 it is no longer even possible to know
what the set of default TestExecutionListeners is before runtime.

This commit addresses this issue by introducing a mechanism for merging
custom declared listeners with the defaults for the current
environment. Specifically, @TestExecutionListeners supports a new
MergeMode that is used to control whether or not explicitly declared
listeners are merged with the default listeners when
@TestExecutionListeners is declared on a class that does not inherit
listeners from a superclass.

Issue: SPR-8854
Polishing
Polish Javadoc and formatting in @TestExecutionListeners
Include all source artifacts in published sources jars

This commit updates the Gradle build to ensure that the following are
including in published 'sources' jars.

 - Java source code (previously supported)
 - AspectJ source code (previously supported)
 - META-INF/spring.factories
 - META-INF/services/*
 - Java Properties files
 - XML files
 - MIME types files (mime.types)

Issue: SPR-12085
Include Groovy source code in published sources jars

In our Gradle build script, we are now assembling 'sources' jars from
'sourceSets.main.allSource' in order to include Java, Groovy, and
AspectJ source code as well all other appropriate classpath resources.

Issue: SPR-12086
Remove duplicate test dependency on mockito-core
Relax XML content type expectations in tests

Requests in XmlContentAssertionTests and XpathAssertionTests now accept
"application/xml;charset=UTF-8" in addition to "application/xml".
Improve documentation of SpringFactoriesLoader
Clean Up Deprecated Method Call

change all testcases in spring-jdbc those use queryForInt and
queryForLong methods to queryForObject
Remove unnecessary @SupressWarnings.
Merge pull request #625 from eujungkim/spr-warning

Clean up warnings in CompoundComparator
Apply AsyncUncaughtExceptionHandler to AspectJ

Prior to this commit, only @Async annotated methods with proxy style
had their custom uncaught exception handler applied. This commit
harmonizes the configuration so that AspectJ applies that behaviour as
well.

Issue: SPR-12090
polishing