Implementing Marshaler and Unmarshaler interfaces for Macaroon and Caveat.

This can actually be []Caveat and everything will just work out,
because *Caveat implements MarshalJSON.