Port to libgit2 v0.20.0 (Force index reread)

Index::read can now be allowed to not reread if unchanged
Port to libgit2 v0.20.0 (Diff API)

Adjusted to changes in diff API
Port to libgit2 v0.20.0 (branch iterator)

Use branch iterator to get the list of branch names
Port to libgit2 v0.20.0 (cb in remote_download)

The callback in git_remote_download was moved to the callbacks
Port to libgit2 v0.20.0 (Clone API "simplification"?)

Add lots of code to not-so-obviously simplify the API...
Use newer libgit2
Rename FetchEvents to RemoteEvents
Move Events to Remote