ISPN-2903 Manual evictions should not lead to cache store removals
Bump to 5.2.6-SNAPSHOT
ISPN-2928 Fix the JDBC configuration parser not to set the connectionUrl with the driverClass value
ISPN-2918 TopologyAwareConsistentHashFactory doesn't distribute data to nodes evenly

Improve the topology-aware CH algorithm to spread backup copies of segments
to all the nodes.
ISPN-2554 Remove eviction wakeupInterval warning since it is only inside
old deprecated code
ISPN-2992: Handle the case where the timeout elapses before the backup response returns.
Clean up exception message
ISPN-3043:  Make synchronous backup calls use the OOB thread pool.
ISPN-2974 DeltaAware based fine-grained replication corrupts cache data, if eviction is enabled

* Add unit tests to highlight the issue with DeltaAware and eviction in replication mode.
* Made the test generic enough to be able to also test in local mode with the option of using passivation instead of eviction; the test can also use AtomicHashMap and FineGrainedAtomicMap instead.
* The eviction + replication test cases fail for DeltaAware, AtomicHashMap and FineGrainedAtomicMap.
ISPN-2974 Fix replication of delta updates for DeltaAware and AtomicMap in both eviction and passivation scenario

These fixes allow the DeltaAware and AtomicMap tests to pass but the fix is not yet complete for FineGrainedAtomicMap:

* PutKeyValueCommand must use Flag.DELTA_WRITE if the value is a DeltaAware.
* AtomicHashMapProxy must use Flag.DELTA_WRITE instead of Flag.SKIP_CACHE_LOAD if eviction is enabled.
* ApplyDeltaCommand must use Flag.DELTA_WRITE and ensure the flags are properly externalized.
* ApplyDeltaCommand must properly set the inherited 'key' field so methods getKey() and getAffectedKeys() return a valid value (ISPN-2996).
* ClusteredCacheLoaderInterceptor.forceLoad() must also check if this is a delta write (similar to ClusteredActivationInterceptor).
* ClusteredActivationInterceptor and ClusteredCacheLoaderInterceptor must correcly determine the primary data owner in REPL mode instead of assuming the coordinator (ISPN-2988).
ApplyDeltaCommand getDeltaAwareKey() vs getKey() refactoring

* Method getDeltaAwareKey() is just an alias for the inherited getKey() so it can be removed
* Class ApplyDeltaCommand.DeltaCompositeKey needs an externalizer
ISPN-3001 DeltaAwareCacheEntry.getLifespan() and getMaxIdle() return 0 and cause instant expiration

These should actually return -1 for infinite lifetime.
Otherwise LocalDeltaAwareEvictionTest.testFineGrainedAtomicMap(), ReplDeltaAwareEvictionTest.testFineGrainedAtomicMap() and ReplDeltaAwareEvictionTest.testFineGrainedAtomicMap2() fail because the entry is already expired when it is fetched by the loader.
ISPN-3056 FineGrainedAtomicMap updates are lost on some cluster nodes when eviction or passivation is involved

* CacheLoaderInterceptor does not properly handle ApplyDeltaCommand; it should call loadIfNeeded() to ensure data is properly fetched from loader if it was evicted from data container. The loaded entry must be wrapped using EntryFactory.wrapEntryForDelta() instead of wrapEntryForPut().
* CacheStoreInterceptor.StoreModificationsBuilder must visit ApplyDeltaCommands and ensure special handling for DeltaAwareCacheEntry to store the yet uncommmited changes rather than the value because the context entries are not yet committed at this point due to the order of interceptors.
* EntryFactoryImpl.wrapInternalCacheEntryForDelta must ensure the created DeltaAwareCacheEntry wraps a mutable context entry rather than an immutable internal entry that does not do anything on commit().
* DeltaAwareCacheEntry must merge the deltas and mark the wrapped entry as changed BEFORE asking the wrapped entry to commit.
ISPN-3084: The loggers should be static and not created on an instance basis.
ISPN-2173 NPE when using XA enlistment without recovery
ISPN-2935 After view change single node is left in cluster, but still tries to invoke stuff remotely

* Make the view listener synchronous and move the processing to an async
  transport thread.
* Synchronize the view handling on the coordinator.
* When recovering the cache status after becoming coordinator, remove cache
  members that are no longer cluster members. (Even though the member will
  be removed when the next view is handled.)
ISPN-2910 Divide by zero exception on shutdown

Skip topology update when a new node becomes coordinator and all the
members of a cache leave while the coordinator recovers the state.
ISPN-2966 NBST: Concurrent leavers can lead to deadlock

Make the CH_UPDATE and REBALANCE_START commands asynchronous (but keep them OOB).
State transfer code cleanup

* Rename StateTransferManager.notifyEndOfTopologyUpdate() to notifyEndOfRebalance() to reflect its actual purpose
* Remove unused method StateTransferManager.isLocalNodeFirst()
* Clarify javadoc LoLocalTopologyManager.confirmRebalance()
ISPN-2589 NPE in InvalidateL1Command

This NPE can appear in both DIST and REPL mode when we process a topology update in which the current node is not a member.

* There is no reason to invalidate segments if we are not a member, so the call to StateConsumerImpl.invalidateSegments() is guarded with a membership check. This also avoids the NPE.
* StateConsumerImpl.invalidateSegments() was wrongly using CommandsFactory.buildInvalidateFromL1Command where it should actually be buildInvalidateCommand()
* Extract all the logic to restart broken transfers from failed sources into a separate method (StateConsumerImpl.restartBrokenTransfers())
* Rename StateConsumerImpl.notifyEndOfTopologyUpdate() to notifyEndOfRebalanceIfNeeded() to clarify its purpose
* Remove StateConsumerImpl.activeTopologyUpdates member as all the logic regarding it has long become redundant
* Remove one of the overloaded variants of CommandsFactory.buildInvalidateFromL1Command that is no longer used