Unfortunately, we can't assume that `git__free` can safely free the memory we were given.

On Windows, the Debug runtime and the Release runtime use incompatible allocators.  (The Debug runtime adds some guard pages at the end of allocated pages, or something along those lines.)  If somebody was to build their filter in debug and libgit2 was built as a release DLL, then when libgit2 tried to `free` that memory, the allocator would abort.

So we need to either provide an allocator for filters to use (and then we can free it) or let the filter allocate and also make them give us a free function.  I added this to your pull request over at https://github.com/libgit2/libgit2/pull/1683 and your input would be very valuable to see if I'm not crazy!