ISPN-2421 Optimise the call to LocalTransaction.getCommitNodes

* If the topology id has not changed LocalTransaction.getCommitNodes will return the unchanged list of recipients.
* TransactionTable.useStrictTopologyIdComparison is no longer required since the topology id is incremented on each update. All usages in AbstractTxLockingInterceptor need to be removed also.
ISPN-2596 Create unit test for ISPN-2574

Add StateTransferRestartTest that highlights ISPN-2574 regression issue, contributed by Michal Linhard.
ISPN-2574 Segment transfer not restarted if the owner fails

* The already in-progress inbound task that was fetching from a leaver should have been cancelled before being retried. The existing code already took care of removing the old task and creating a new one but it should have also removed it from taskQueue and interrupt the task in order to unblock the transfer thread. InboundTransferTask.terminate() method was added for this.

* The logic that prevents two transfer threads running at the same time is broken and could also result in no thread running at all if the existing thread was about to exit but did not set isTransferThreadRunning to false yet. This means not all tasks in taskQueue were always processed.
ISPN-2579 StateResponseCommand received after the node is removed from CH causes IllegalArgumentException

Must check if we are still member in write CH before applying state in order to prevent failures if a late StateResponseCommand is received during leave.
ISPN-2733 Issue with the release script (bin/release.py)
ISPN-2507 @DataRehashed event is not triggered

I fixed ISPN-2401 as well, because it needed the same approach as notifying
the listeners of the start and end of rebalancing at the right time.

I added the consistent hash to the DataRehashedEvent, which should be
backwards compatible, because user code is not supposed to implement it.