Fix double-quote shenanigans

Turns out git ls-tree does some fun escaping type stuff of its own with the filenames (so e.g. a file named foo'bar will appear as foo'bar, but foo"bar will appear as "foo\"bar"). Using the -z option stops it from doing this, but the output is null-separated instead of newline-separated.