Pass `-z` arg to git ls-files & split on null char

It seems a little bit paranoid to assume there might be a newline or tab in a file name, but it's perfectly valid on many systems. When such a character exists in a filename, `git ls-files` will return something like `"file\nname"` in its listing, which is problematic because the calling code expects neither the escaped whitespace nor the quotes.

By passing the `-z` argument, git uses the null character as the separator, never escaping whitespace nor quoting file names.