ISPN-2496 and ISPN-2497 DistributedExecutionCompletionService bugs
ISPN-2527 Upgrade Weld and Arquillian (this also allows the CDI module to align with other component versions)
throw CancellationException for Future#get if Future is canceled
ISPN-2474 Remove L1 entries whose owners changed on topology changes

Don't write an entry to L1 at all if the key owners changed between the
read CH and the write CH (because the pending CH may not contain any of
the read CH owners).

Extras:
* Enhance L1OnRehashTest to check the invalidation of L1 entries after state transfer
* Use the new configuration in BaseDistFunctionalTest
* Increase the default number of segments to fix MagicKeyTest after config change
ISPN-2546 StateChunk with isLastChunk=true not sent when all entries are sent ahead

Ensure that the last chunk is always sent, even if empty.
ISPN-2431 - covering another case for failover policy enhancement.
Merge branch 'master' of https://github.com/infinispan/infinispan.git into 5.2.0-BNI
Merge branch 'master' of https://github.com/infinispan/infinispan.git into 5.2.0-BNI
ISPN-1884 Expose Hibernate Search statistics MBean via query

* Query statistics are enabled when cache stats are enabled,
hence hiding the Hibernate Search jmx enable property, and avoiding
the need of yet another property.
ISPN-2351 Enable MassIndexer operation via JMX
ISPN-2378 Fixed Issue where already released locks are tried to release again
ISPN-2548 Use database metadata to determine table existence
ISPN-2506 Remove now useless JDBC configuration test
ISPN-2556 Make MBean unregistration include the dynamic JMX domain in the filter
ISPN-2570 DistributedExecutorService should not manage lifecycle of a
client supplied ExecutorService
ISPN-2533 Timeout on local executed DistributedTasks not work
ISPN-2567 ClassCastException from org.infinispan.query.impl.LifecycleManager.cacheStopping

Check if the component is not the REMOVED_REGISTRY_COMPONENT before casting to SearchFactoryIntegrator.
ISPN-2557 IllegalStateException "Segments [a,b, c] are not owned by NodeX" in StateProviderImpl

* In StateProviderImpl.getTransactionsForSegments() and StateProviderImpl.startOutboundTransfer() if requestTopologyId > topologyId we should wait for the topology AND refresh the CacheTopology object we are using. The latter part was missing.
* Extracted the code that checks current topology and waits for a higher topology if needed into a separate method
Upgrade plugins to gain some build speed
ISPN-2569 Upgrade to JGroups 3.2.4