Update libgit2

This leads to two API changes: 

```Rugged::Remote.new(repo, url, name)``` => ```Rugged::Remote.new(repo, url_or_name)```

Inmemory remotes can no longer be created with name,
so it doesn't make sense to have it as a parameter.

Remote.new creates a new inmemeory remote if passed a valid url
or lookups remote by name.

Also creating a remote with ``git_remote_new`` and using ``nil`` as
name resulted in segfault when calling remote.name, so a
a nil check is needed before returning a string from the remote name.
This also fixes issues with current inmemory remotes created
with ``git_remote_create_inmemory``, since they are nameless.

obj.note_create now takes ``:force`` option

I'm thinking of documenting Rugged::Remote, are there any plans to change the API?