Instead of relying on gofmt's -d flag, use diff -n directly. This
allows us to implement our own patch function instead of having to use
diff-mode.

This fixes two issues:

- no more skipping over changes
- no more problems with whitespace in file names