This makes two changes:
1. ListPermissions assumed every grant string had a type field, which
does not match all grant formats. It now infers type from ID for
formats which do not specify type.
2. Allow ID-only grant strings to be valid so long as the type specified
matches the type of the specified ID.
returnGrant{},errors.NewDeprecated(errors.InvalidParameter,op,"parsed grant string would not result in any action being authorized")
returnGrant{},errors.NewDeprecated(errors.InvalidParameter,op,fmt.Sprintf("parsed grant string %q would not result in any action being authorized",grant.CanonicalString()))