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
I was also unsure in #363 but imho if we're using path strings provided by the libgit2, we shouldn't be messing with how they're composed and leave that up to libgit2.