Introduce MergeFetchHeadNotFoundException

This adds a  strongly typed exception to indicate when a pull is
performed and a reference for the configured merge branch was not fetched.
Update exception message when Pull cannot find ref to merge
Update libgit2 to build with GIT_TRACE

Build libgit2 with tracing information so that we can provide it to
consumers.
Update libgit2 to e0383fa
Introduce logging

Consumers can register a GlobalSettings.LogConfiguration to receive
logging messages from LibGit2Sharp and trace messages from libgit2.
Simplify Travis install phase.
Fix compareOptions handling in Diff.Compare<T>

Fix #827
Drop internal ICredentialsProvider
Require NuGet  2.7+ to install the package
Move higher level Index operations to IRepository

Fix #822
Update libgit2 to 3f8d005

https://github.com/libgit2/libgit2/compare/e0383fa...3f8d005
Test for invalid signature config
Add preemptive config null check

libgit2 will throw if you set a NULL value, so we might as well.
Safer email and name validation in Configuration.BuildSignature
Prevent creation of a Signature with an empty email
Refactor Signature creation from configuration
Warn when signature cannot be properly inferred from configuration
Release LibGit2Sharp v0.20
Drop obsolete members after release v0.20.0
Extract FetchOptionsBase and extend Clone tests