Recognizes transactions with net zero changes as read-only

There was an issue wherea transaction with changes, although net zero
changes, would be treated as a write transaction and be committed. In a
cluster such a transaction would be treated as a read-only transaction and
so there would be a mismatch between the authoring database and the rest
of the cluster in the transaction id sequence.
Merge pull request #2922 from tinwelint/2.1-dont-commit-read-txs

Recognizes transactions with net zero changes as read-only