The way we do this in git2go (and what I've seen done as idiomatic Go) is to bundle up a bunch of `const` to have the compiler do more conversion, like in `object.go`, so here we'd have.

```go
type DiffFlag int
const (
    DiffFlagBinary DiffFlag = C.GIT_DIFF_FLAG_BINARY
    DiffFlagNotBinary       = C.GIT_DIFF_FLAG_NOT_BINARY
...
)

type Delta int
const (
    DelatUnmodified Delta = C.GIT_DELTA_UNMODIFIED
...
)
...
```

which reduces type conversion noise and still lets everyone know what we mean.

We should also make `GIT_DIFF_LINE` its own type, though that would conflict with the struct... maybe we should name it `DiffLineType` here.