ISPN-2757 ReplaceCommand in REPL mode cluster does not perform any modifications if the entry was not yet transfered during rehashing

* ReplicationInterceptor needs to be smart an if the command is conditional but the affected value is not yet available locally because state transfer did not have the chance to fetch it yet then we should fetch it now.
* The whole logic where the coordinator is the main lock owner has to be replaced to use the first topology member rather than the coordinator (the coordinator might not even run the cache in question)
* ClusteringDependentLogic needs to be split in separate implementations for each cache mode
Introduce a common base class for replication and distribution interceptors for code reuse

Move some methods from DistributionManager to BaseDistributionInterceptor.