Implementing Marshaler and Unmarshaler interfaces for Macaroon and Caveat.

return fmt.Errorf("cannot decode caveat id %q: %v", cavJSON.CID, err)