Harmonize log configuration

Prior to this commit, the codebase was using a mix of log4j.xml
and log4j.properties for test-related logging configuration. This
can be an issue as log4j takes the xml variant first when looking
for a default bootstrap configuration.

In practice, some modules declaring the properties variant were
taking the xml variant configuration from another module.

The general structure of the configuration has also been
harmonized to provide a standard console output as well as an
easy way to enable trace logs for the current module.
JMS annotation-driven endpoints.

This commit adds a java config support for JMS annotated endpoint
defined by the @JmsListener interface. Can be activated for now by
the @EnableJms on a configuration class.

Containers are created and managed under the cover by a registry
at application startup time. Container creation is delegated to a
set of JmsListenerContainerFactory that are identified by a factoryId
present on the JmsListener annotation.

The configuration can be fine-tuned by implementing the
JmsListenerConfigurer interface and get access to the registrar used
to register endpoints. This includes a programmatic registration of
endpoints in complement to the declarative approach.
Meta annotation support

This commits adds the support of meta-annotation for JMS endpoint
discovery.
JmsListenerEndpoint id

Containers that are created under hood can now be identifier using the
id of the related JmsListenerEndpoint instance.
Annotation driven namespace support

This commit adds an 'annotation-driven' element in the jms namespace
support that registers the necessary infrastructure to handle the
@JmsListener annotation on any Spring-managed object.
Move JmsHeaderMapper infrastructure from SI

This commit moves the JmsHeaderMapper infrastructure from
Spring integration to the Spring framework.

SimpleJmsHeaderMapper is based on SI's DefaultJmsHeaderMapper. The
simple implementation maps all JMS headers so that the generated
Message abstraction has all the information stored in the protocol
specific message.
Fix Unnecessary sub type
MessageListenerFactory

This commit introduces the support of flexible method arguments
for JMS annotated endpoints.
Improve design

This commit removes the soft link between the factory and the endpoint.

Rather, each endpoint is registered alongside with the factory to use.
Added a default factory in case it is not defined at the endpoint level.

Improved the Javadoc and the test coverage.
Add support of NativeHeaderAccessor