Handle the application of binary patches. Include tests that produce a binary patch (an in-memory `git_patch` object), then enusre that the patch applies correctly.
When a patch is empty, simply copy the source into the destination.
The beginnings of patch application from an existing (diff-created) git_patch object: applies the hunks of a git_patch to a buffer.