Adding the endFlush event

For this to work, fixed a bug with computeChangeSet

- Modify a copy of actualData (changeSet)
- Update the "originalData" to the "actualData" after computing the CS.
  This means the additional flushes do not register the difference in
  the actual data (which had previously had fields removed) as a change.
Merge branch 'end_flush'