The purpose of these classes is to capture all modifications are done on a transaction.
The reason for capturing these modifications is so that we can persist them to the transaction journal
When a member is restarted or a shard is restarted the "Modifications" will be read from the log and replayed
on the Shard at which point the Shard can create a new transaction and apply it to the current state
Change-Id: I4a9b1c3f28eac5c4d360d743efc44286d8a1acca
Signed-off-by: Moiz Raja <moraja@cisco.com>