ISPN-3357 Insufficient owners with putIfAbsent during rebalance

* Set the ignorePreviousValue flag when replicating from the primary owner, and
  respect its value on the backup.
* Also set the ignorePreviousValue flag when retrying the command, as the new
  primary owner might be an old backup owner.
ISPN-3357 Insufficient owners with putIfAbsent during rebalance

* Properly retry the command when the OutdatedTopologyException is thrown
  from a backup owner and wrapped in a RemoteException both on the primary
  and on the originator.
* Set the ignorePreviousValue flag on the command when retrying, even if
  the originator is not the primary owner.
* Keep forwarding the old way in replicated mode, and revert
  ReplCommandForwardingTest
ISPN-3366 Harden the outdated topology checks
ISPN-3357 Insufficient owners with putIfAbsent during rebalance

Set the ignorePreviousValue flag only after the check was performed.
The flag won't be set if the topology changes before the command is
replicated to the primary owner.
ISPN-3496 Infinispan library breaks Hibernate 2LC with ClassCastException
ISPN-3698 Instantiate default marshaller on every start() call

* This avoids having marshaller instances lingering around after a
cache manager has been stopped which could be left in an unusable
state.
ISPN-3055 Unreleased lock after node restart
ISPN-2995 FineGrainedAtomicHashMap may not lock all the composite keys in optimistic locking
ISPN-3124 AtomicHashMap.put is not atomic with pessimistic locking

I deprecated FlagContainer and removed it from the signature of several
internal AtomicMap methods.
ISPN-3178 Fix CHMv8 bug with tree hash bins

Sync ConcurrentHashMapV8 with the master branch.
ISPN-3556 When LockControlCommand fails on an owner, the rollback command is not sent

* small issue with Pessimistic transactions but it works fine with Optimistics
transactions.

* refactor ControlledRpcManager and created a base abstract class for it.
ISPN-3932 FineGrainedAtomicMap with REPEATABLE_READ sees modifications from other transactions

* Rebased atomic tests to cover both FineGrainedAtomicMap and AtomicMap
* Fixed bug in values() that was removing the duplicate values
* Added new DeltaAware interface that allows to copy the instance
Fixed failing tests caused by ISPN-3932
ISPN-3957 Preload with async cache store is not efficient
ISPN-3947 HotRod client keep trying recover connections to a failed cluster

* Allow the user to configure the number of retries per server in the
HotRod client.
ISPN-3845 CACHE_MODE_LOCAL flag only works in primary owner for non-tx caches
ISPN-3942 HotRod client keep trying recover a connection to a cluster member after shutdown
ISPN-3449 ReplaceCommand with ignorePrevValue=true does not work on null entries

Use wrapEntryForPut instead instead of wrapEntryForReplace when
ignorePreviousValues == true.
ISPN-3443 WriteCommand may be ignored during state transfer

Wrap even missing entries for remove/replace commands with ignorePreviousValue = true.
ISPN-3095 Cache.replace() succeeds on originator but fails randomly on remote owners during state transfer in DIST mode with pessimistic locking

* TxDistributionInterceptor.ignorePreviousValueOnBackup() should return true also for pessimistic case
* This makes DistStateTransferOnJoinConsistencyTest.testReplacePessimistic() pass