Fixed early exit changeset computation

- For updates to be taken into account (e.g. after binding translations)
  the changeset needs to be reset when exiting the commit function when
  there is nothing to do.

- Otherwise after calling flush, the changeset is still computed and the
  next flush that is called envokes "computeChangeset" but as there are
  still changesets from the previous flush, it doesn't bother
  recalulating them.

- Before the "early exit" code flush would always reset the changeset.