Cleanups and fixes

This contains a number of cleanups of headers and the filter API,
such as having the filter use GIT_PASSTHROUGH to indicate that it
does not wish to process the file data instead of GIT_ENOTFOUND.