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.

I put this last in the structure so that the v1 struct would be a prefix of the v2. I don't love the result, but it seemed like the least intrusive way to handle this (particularly since I wrote the code so that the v1 struct is still supported).

I also considered both putting the `flags` field adjacent to the `attributes` field and changing the `initialize` callback so that the `flags` was an output parameter of the callback instead of a data member of the `git_filter`. Both of those are significantly more intrusive changes, although the resulting API / structure definition is a bit cleaner.