Move git-tracking check into diff command.

This avoids shelling out twice per buffer: once to check whether git
knows about the file and once to perform the diff.  Now we simply do
both in one external call.

Profiling showed external calls to git taking ~20ms.  This doesn't seem
too bad but it adds up.
More accurate error message.
Fix precedence in diff command.
Don't place/unplace dummy sign unnecessarily.
Fix bug in realtime diff of non-current buffer.

This bug meant that a realtime diff of a buffer which wasn't the current
one -- which happens during GitGutterAll() -- diffed the staged version
of the buffer against the current buffer's contents instead of the
buffer's contents.
Remove debugging line.