Allow custom filters to directly load working directory data

Add support for a filter flag to indicate that a custom filter can directly read working directory file contents instead of having the libgit2 filter framework pre-read the file data.  This allows a filter to skip loading the on-disk data entirely into memory when going in the `TO_ODB` direction (provided that the filter is applied first the chain of filters).

This bumps the custom filter structure definition from 1 to 2 and adds flags to the new version of the struct.

I think this may be the first time we've bumped a structure version number, so the code I wrote to simultaneously support v1 and v2 of the structure definition may not be quite what we want in the long run. I'm interested in feedback.

One thing I haven't addressed is how a custom filter that uses `DONT_PRELOAD_WORKDIR` will get the absolute path to the file on disk. Right now, it just gets the `git_repository` and the relative path to the file. We generate the absolute path here, but I wasn't sure if I should add a new field to the `git_filter_source` to store it or just allow the custom filter to deal with it on its own. Feedback welcome!