Make Patch's allocation pattern more consistent

Duplicate patch's filepaths instead of reusing the memory from the underlying git_patch*.