Refactor the deferred update transaction round handling code to use
a new TransactionRoundAwareUpdate interface. Also, rename a few
DeferredUpdates methods so they do not give the impression that
doUpdates() is always called.
Change-Id: Idc4c6d81c4e2ca0ce41bca1e7800f797fa7e37f6