Automatically apply @EnableJMS

Automatically apply @EnableJMS when spring-jms is on the classpath
and the annotation hasn't already been applied. This allow for Spring's
new @JmsListener annotation to just work.

Fixes gh-1425
Polish
Add Atomikos support classes

Add support classes for the Atomikos JTA library, including:

- A Spring friendly ConnectionFactoryBean and DataSourceBean.
- A PostProcessor to apply "depends-on" ordering automatically.
- A bindable properties class for type-safe configuration.

See gh-947
Add Bitronix support classes

Add support classes for the Bitronix JTA library, including:

- A Spring friendly ConnectionFactoryBean and DataSourceBean with
  support for setting a direct XA source.
- A PostProcessor to apply shutdown ordering automatically.

See gh-947
Add SpringJtaPlatform for Hibernate

Add SpringJtaPlatform Hibernate AbstractJtaPlatform implementation. Also
relocated SpringNamingStrategy to the `hibernate` sub-package.

See gh-947
Add Atomikos and Bitronix JTA auto-configuration

Add auto-configuration for the Atomikos and Bitronix JTA libraries.

See gh-947
Update DataSource auto-configuration to support XA

Update DataSource and JPA auto-configuration to consider XA datasources.

See gh-947
Update JMS auto-configuration to support XA

Update JMS auto-configuration for ActiveMQ and HornetQ to support XA
transactions.

See gh-947
Add Atomikos and Bitronix starter POMs

Add starters for Atomikos and Bitronix JTA libraries.

See gh-947
Add Atomikos and Bitronix JTA samples

Add samples and integration tests for Atomikos and Bitronix JTA.

See gh-947
Support JNDI for JTA and JMS.

Update auto-configuration for JMS and JTA to support a ConnectionFactory
and TransactionManager exposed via JNDI.

JTA configuration now attempts a simple JtaTransactionManager before
attempting Bitronix or Atomikos configuration.

The JMS auto-configuration also now attempts to find a ConnectionFactory
from JNDI before falling back to the previous strategies. If JNDI is
present a JndiDestinationResolver is also configured instead of the
default DestinationResolver.

See gh-947
Add JNDI Sample

Add a sample application that can be deployed to WildFly to demonstrate
how JTA can be used when running in a application server.

See gh-947
Document distributed transaction support

See gh-947