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

Supersedes #808
>propagating this specific error code might be useful for consumers of this API to be notified more specifically what went wrong.

@jamill I'm not sure I get that. Should we move to calling the native method? How would we be able to throw an exception pointing at the misconfigured entry?