Lazily instantiate DiffSets in TxState.

o Avoid instantiating DiffSets when checking containment in TxState
Renaming methods in TxState to be more in line with Kernel naming scheme
Instantiate *statesMaps in TxState lazily
Instantiate TxState lazily

o Replace TxState.Factory with TxState.Holder
o Make TxState clients check if state.hasTxStateWithChanges() to avoid object instantiation