Implementing Marshaler and Unmarshaler interfaces for Macaroon and Caveat.

Please check the error return from this.

Also, the FIXME seems redundant now.