Add support for extra MessageProducer method

This commit supports two additional methods of the MessageProducer
interface as from JMS 2.0

An integration test infrastructure is necessary to be able to test
those scenario: this is taken care of in a separated initiative.

Issue: SPR-11950
Revised Jms2MessageProducerInvocationHandler implementation with switch statement

Issue: SPR-11950
Introduce tests for Spring Boot issue 885

This commit introduces unit tests that attempt to reproduce the problem
described in Spring Boot issue 885; however, the tests pass and
therefore do not confirm the reported problem.

See: https://github.com/spring-projects/spring-boot/issues/885
Reduce PlatformTransactionManager lookups

Prior to this commit, cache operations mentioning a qualifier led to
a lookup for the same PlatformTransactionManager over and over again.
The same applied when a transactionManager bean name was specified on
the interceptor.

This commit adds a cache to store the reference of such transaction
managers. As a convenience, the default PlatformTransactionManager is
also initialized if it has not been through configuration.

Issue: SPR-11954
CachedSessionInvocationHandler properly caches createSharedConsumer results

Issue: SPR-11956
ConstructorResolver's exception message on null factory-bean hints at potential BeanPostProcessor involvement

Issue: SPR-11951
CachedSessionInvocationHandler includes durable flag in ConsumerCacheKey

Issue: SPR-11956