ISPN-3445 Only attempt to write to the channel if the error we're reporting is not an IO exception
ISPN-3542 Read Only transaction optimization doesn't work properly for RepeatableRead

* fix: CommitCommand was sent twice for read-only transactions
ISPN-3449 ReplaceCommand with ignorePrevValue=true does not work on null entries

Use wrapEntryForPut instead instead of wrapEntryForReplace when
ignorePreviousValues == true.