These can be moved into `diff_patch.c` I think.

There is one place where these structures are used outside `diff_patch.c` right now - in the formatting of a patch as text. I use the structures directly to avoid the overhead of repeated validity checks while iterating over the content of the patch. That said, I think I can make some internal functions that can be used when we know the code is safely accessing the patch contents and make the structure definitions internal again.