Remove unused imports.
Cleanup

* Generify MultipleCacheManagersTest.advancedCache(..)
* Remove superfluous "enabled = true" attribute from @Test annotations
* Remove unused local variables in StateTransferManagerImpl.forwardCommandIfNeeded(..)
ISPN-2366 Allow getCache() to return before the node receives any state

Add configuration option for StateTransferManagerImpl.waitForInitialStateTransferToComplete; default is 'true' to maintain pre-existing behaviour.
ISPN-2362 Remove-inconsistency during NBST

* Add BaseDistStateTransferConsistencyTest and BaseReplStateTransferConsistencyTest (with subclasses for optimistic and pessimistic locking) to test ISPN-2362 and ISPN-2502
* Add a new flag, Flag.PUT_FOR_STATE_TRANSFER to be use on put commands done by state transfer
* LocalQueryInterceptor does not index modifications done by state transfer
* Add a isFromStateTransfer flag to LocalTransaction that is set to true only for transactions done by state transfer
* BaseRpcInterceptor and BaseBackupInterceptor do not send the command remotely if the transaction is flagged as created by state transfer
* Add support in StateConsumer to keep track of keys updated by user code during state transfer: isKeyUpdated/addUpdatedKey/stopRecordingUpdatedKeys. Recording starts when rebalance begins and will end when rebalance ends or when a ClearCommand is executed.
* The put command generated by state transfer in StateConsumerImpl is now transactional if the cache is transactional. We no longer use SKIP_LOCKING. This fixes ISPN-2502.
* EntryWrappingInterceptor.commitEntryIfNeeded() notifies StateConsumerImpl of any user-updated keys. It also checks if the update is caused by state transfer and the key was previously updated by the user and does not allow the update if so. This ensures no user generated modifications are overwritten or undone by state transfer.
* If the update is caused by state transfer, VersionedEntryWrappingInterceptor does not perform a write skew check and does not increment the version before executing prepare and commits the entry into DataContainer using the supplied version as is. We need to bypass incrementation in order to ensure the version is identical to the one on source node of the state transfer. Not doing so will cause subsequent user generated updates to fail due to write skew. Bypassing write skew checks in state transfer does not impact consistency because the state transfer PUT has lower priority than normal user-generated updates and is always rolled back if a user modification is committed before the state transfer PUT attempts to commit.
* ReplaceCommand.toString() should also contain the key.
ISPN-2616 Fix write skew check in distributed mode in cases when the value is not yet locally available because state transfer is not yet completed for the key
ISPN-2646 Fix SimpleClusteredVersionGenerator to use the topology Id instead of the view id. This change is required after introducing NBST.
ISPN-2643 HotRod client should send writes to the primary owner to reduce RPCs on the server
ISPN-2366 Add declarative configuration for parsing new state transfer related config flag "waitForInitialStateTransferToComplete"
ISPN-2643 Update the mock transport in the Spring module