Set an error message when keyring get_princ fails

When attempting to use a keyring cache that doesn't exist, set an error
message when we fail to read a principal name, as we do when we return
the same error code when using a file ccache.
Handle no-such-cache where cc_set_flags() succeeds

Calls to krb5_cc_set_flags() fail for file ccaches, but not for all
types.  Account for that in places where that affects whether or not we
return an error to a caller or produce a different diagnostic.