refactors generateSnapshot for readability

adds integration-y test for all transaction types
adds failing test
createItem handles conflicted creation transactions
adds test coverage for confliction deletion transactions

test already passes