Adding json marshaling feature to macaroon.
Use more idiomatic names, better comments for Marshaler and Unmarshaler interface implementation, save allocation time in Macaroon MarshalJSON.
Switching to hex instead of base64
Better docstrings for json marshal/unmarshal methods.
Better error messages.
Macaroon and Caveat id are now strings.
Fixing bad error strings, declare variables instead of initialize them, use json interface instead of esplicitely encode in a loop, switch keyedHash byte slice parameter to string.
Adding test to json decode a json encoded libmacaroon.macaroon.