Use krb5_get_error_message

Contributed by planbnet.  This should provide extended
error messages from the underlying krb5 library when
there are failures.
Replace deprecated krb5_get_init_creds_opt_init()

The preferred method is to use krb5_get_init_creds_opt_{alloc,free},
as it removes a static structure that is unable to be extended.

With credit to MAXuk