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 don't know what you'll think about this logic. Basically, I'm saying if the filter has already been registered and the new `git_filter` actually has a newer version number than the existing registered one, then I allow the re-registration. In the new version is equal or less than the registered version then I reject it (with slightly different error messages for the two cases).

I think you can make a good argument that I should just always reject re-registration of filters under the same name regardless of version number, but this was the first thing that occurred to me and I wanted to see if it was possible.

By the way, the old code didn't even do a `GITERR_CHECK_VERSION` on the filter which is part of why I choose to leave the old version of the `git_filter` struct as a prefix of the new (since version checks won't catch the change if you are using a custom filter with an old version of the library). Of course, we are pre-1.0 so maybe it doesn't matter.