By doing this, discovery of nodes is not timed and instead is done
in-memory which is much more reliable from a testing perspective.
Due to timing issues, some tests would randomly fail because the
cluster did not form in time, so changing to this JGroups stack for
testing solves random test failures due to invalidation messages
not being sent around.
* Switch to autoCommit=false so that unnecessary transactions
are not created.
* Mark timestamps cache explicitly non-transactional.
* Move away from using caches as a way to send evict all
notifications. Instead, use custom commands provided by Infinispan.
* Get rid of the JDBC transaction test because it does not make
sense configuring JDBC transactions with Infinispan 2LC.
* Made the configuration file explicitly define optimistic as locking
mode.
* Make sure a transaction manager that hooks to Hibernate's TM
is configured.
* Query and timestamp caches now use cluster cache loader instead of
state transfer in order to remain asynchronous.
* To maintain previous semantics, after query or timestamp regions have
been completely evicted, a check has been added to avoid going remote if
the region was invalid.