Make `Rugged::Diff` reference their repository.

We need to keep a reference from the diff objects to the repository to ensure that the underlying libgit2 data does not get freed accidentally.

Methods like `Rugged::Diff#find_similar!` (which wraps `git_diff_find_similar`) try to access the repository, and will fail if the data was freed.

//cc  @carlosmn @mmozuras
From what I've seen, it's common to provide an alias in rugged codebase for `owner`:
```ruby
    alias repo owner
```