We used to read in a completely new array when refreshing
the index. The problem with this is that the selection
changes when reading in the new array. We avoid this
by changing the current array, rather than loading in
a completely new one.
This merges functionality that was previously stored in the
combination of PBGitCommitController / PBChangedFile to a
dedicated controller, PBGitIndexController.
This changes PBChangedFile to read in files by using
NSString's stringWithContentsOfFile: method.
It still uses the UTF8 encoding scheme so that we
can capture binary files. This should perhaps be loosened to
also allow other encodings.