013 marshalbinary

Fix bugs in binary marshal/unmarshal code and tests.
Signature?
For export_test purposes, we don't really care about copying
the data. We might as well do:

func (m *Macaroon) Data() []byte {
    return m.data
}