Implementing Marshaler and Unmarshaler interfaces for Macaroon and Caveat.

I think we probably also want a test that some json produced by libmacaroons can be
correctly unmarshaled by this package.