Add -[GTBlob applyFiltersForPath:error:]

Also included some methods for converting between `NSData` and `git_buf`, which is used extensively by libgit2 to represent chunks of data.

**To do:**

 - [x] Test the `NSData` category
It's unclear from the name, but `git_buf_grow` _will_ copy it in that case. `git_buf`s may be allocated or constant, and `git_buf_brow` will always change it to be the former.