Implementing Marshaler and Unmarshaler interfaces for Macaroon and Caveat.

c.Assert(m.Signature(), gc.DeepEquals, []byte{0x88, 0x2e, 0x6d, 0x59, 0x49, 0x6e, 0xd5, 0x24, 0x5e, 0xdb, 0x7a, 0xb5, 0xb8, 0x83, 0x9e, 0xcd, 0x63, 0xe5, 0xd5, 0x04, 0xe5, 0x48, 0x39, 0x80, 0x4f, 0x16, 0x40, 0x70, 0xd8, 0xee, 0xd9, 0x52})