added binary encoding and decoding for multiple macaroons

We might as well identify the dodgy macaroon:
    return nil, fmt.Errorf("cannot marshal macaroon %q: %v", m.Id(), err)