Implement mechanism in TransferInterface to determine whether it is still capable of transferring
The isRunning() method has been added to the TransferInterface interface. For senders, isRunning should return true if it is connected to the underlying transport mechanism. For Receivers, isRunning should return true if it is connected to the underlying transport AND there are senders connected.
This is primarily used in DataReceiverManager to determine when the run has fully stopped after receiving a stop command, as the senders disconnect when they are finished sending.