`binary` is, ironically, ternary, so use an enum for it

libgit2 doesn’t always fill in this information until the files/patches
are further inspected.