git-gui: Corrected diff-index/diff-files protocol parsing errors.
When we were receiving a lot of output from diff-index we split records
at the wrong locations and started using the file status information
(mode and SHA1s) as path names, and then proceeded to try to use part
of the path names as status data. This caused all sorts of havoc.
So I rewrote the parsing implementation to scan for the pair of null
bytes along the buffer and stop scanning (waiting for more data) if
both can't be found during this event. This seems to work well under
high load (like when processing 6,983 added files).
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>