ISPN-2405 Pessimistic transactions can leak locks when cluster topology changes

* In PessimisticLockingInterceptor.visitLockControlCommand there is an optimization to avoid remote calls if the key is local. Unfortunatelly this had the unintended side effect of not adding the locked key to TX.afectedKeys collection if the key was local which resulted in the key not being unlocked on TX end.

* BaseRpcInterceptor.shouldInvokeRemoteTxCommand() and AbstractEnlistmentAdapter.mayHaveRemoteLocks will return true if the TX was started in an older topology than current, regardless if modifications or remote locks are present. This ensures the TX command reaches all locked key owners not just the ones registered in TX.getRemoteLocksAcquired() which can become out of date after rehashing.

* RpcManagerImpl.getTopologyId() should return -1 instead of throwing NPE if the cache has not joined yet (ie. during preloading)

* Add unit test for the pessimistic locking case.

* Minor cleanup in the existing UT for optimistic locking.
ISPN-2366 Rename state transfer config option 'waitForInitialStateTransferToComplete' to 'awaitInitialTransfer'

* The previous name was not choosen well.

* Revised javadoc and XSD documentation for this config option to higlight the consequences of turning it off.
ISPN-2578 Two PrepareCommands in parallel cause ConcurrentModificationException
ISPN-2728 AbstractCacheTransaction.hasLockOrIsLockBackup may cause NPE
- temporary fix
ISPN-2420 Increment the topology id when a node leaves the cache

Needed for the ISPN-2632 fix with replicated caches - since they don't
rebalance after a leave, they will never send a topology update to their
clients.
ISPN-2632 Uneven request balancing after node crash

Send the cache topology id to the client instead of the JGroups view id.
After a rebalance, the cache topology id is incremented, so this ensures
that the client's topology information is updated as well.