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