Make BuildSignature() throw a descriptive message

When global user.name or user.email is set to an empty value, it will
now throw a LibGit2SharpException with proper explanatory message.
Previously it would throw an ArgumentException with obscure message:
"String cannot be empty\nParameter name: name".
Introduce tracing