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
> The only possible failure is memory allocation, which Cocoa conventionally doesn't generate `NSErrors` for.

In that case, I'd suggest altering the documentation to make this explicit.

> `inout` is a relic of Distributed Objects. It doesn't mean anything at all.

:+1: I wasn't clear if it actually did anything. It can still be a sort of documentation, but I'm okay leaving it out.