Remove obsolete Create/Delete methods
Remove obsolete CommitCollection interfaces
Remove obsolete LibGit2Exception
Remove obsolete Configuration members/extensions
Remove obsolete DiffTarget
Remove miscellaneous obsolete members
Remove obsolete Branch.AheadBy/BehindBy
Move Fetch tests in separate file
Move Fetch in Network namespace
Make StashCollection.Remove() take an index (int) param

I think we can safely avoid forcing the client to pass us the index using a "stash@{n}" pattern.
Add an indexer to the StashCollection
Make test directory clones consistent
Rename GitFetchSpecHandle to GitRefSpecHandle
Move Push related tests to a separate file
Add the UpstreamBranchCanonicalName property to Branch

This property contains the reference of the tracked branch, relatively to the upstream repository (so "refs/heads/master", and not "refs/remotes/origin/master").
Add Push overloads taking Branch instances
Add ExplicitPathsOptions to Repository.Diff.Compare()

All the overloads can now report and/or fail upon unmatched explicit paths.
By default, the passed list of paths will be treated as a list of pathspecs.

When an ExplicitPathsOptions is passed to the overloads, this list of paths
will be treated as explicit paths. In that case, the default behavior is to
throw when one of this explicit path is unmatched.
Add ExplicitPathsOptions to Repository.Reset()
Add ExplicitPathsOptions to Repository.Index.Unstage()/Stage()
Allow update of the target of a symbolic reference with another symbolic reference