Much improved file system change handling, plus new hooks for brackets-git.

brackets-git needs to apply class changes to the tree *after* running git status.
Since that happens asynchronously, brackets-git needs some way to signal that
a change has occurred. The solution here is a new "forceRefresh" that causes the
entire tree to re-render. (Not optimally efficient, but React still minimizes actual
DOM changes.)