Make Configuration.BuildSignature() throw when user identity isn't configured

Supersedes #808
>You might not know specifically which entry is not found, but the GIT_ENOTFOUND error code (and corresponding exception type), would indicate that either the name or email was not found...

Wouldn't that rollback #831?

/cc @jaccus