Create a macro to generate restricted variations on RelayMsg, ChanMsg.
With this macro, you can define your own variations on RelayMsg and ChanMsg. I've tweaked RelayCell and ChanCell too so that they're parameterized on these variations, and can be used with whatever subset of the RelayMsg/ChanMsg pair you want.
For making this change, I've also made some of the APIs more consistent. This is at the expense of a semver break in tor-cell
.
This is a large part of #525 (closed). The rest of #525 (closed) will be a matter of using this macro to improve tor-proto.