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.

Interestingly, while the filter `attributes` supports this style of value matching (i.e. giving both an attribute name and a required value for match), prior to these tests we were not actually testing that style of using the `attributes`. Fortunately, it appears to actually work. :grinning: