Implementing Marshaler and Unmarshaler interfaces for Macaroon and Caveat.

not that it makes any semantic difference in this case, but i'd move this error check
to just after the Unmarshal call, so it's obviously associated with it.