added binary encoding and decoding for multiple macaroons

Let's call this "data", to fit in with the name used elsewhere.

You can now use appendBinary here.

    var err error
    for _, m := range s {
        data, err = m.appendBinary(data)
        if err != nil {...}
   }
   return data