[StatusView] Only trigger update when needed.

* By the time we check if we can commit, we have already queried the file
statuses, therefore we can use cached data to check if we can commit.
* Moved Commit notifications to GUI thread.
* We don't need to check if we can commit in the CommitCommand, it's
only accessed from the StatusView.
* Moved commit notifications to happen after the File Status
changed notifications.