The attached patch implements introspecting the sbus interfaces as
tracked by #2234.
There is one part of the patch I dislike, but I wanted to get other
opinions, too -- the discard_const in sbus_message_handler(). I was
going back and forth on whether sbus_introspect() should be an sbus
handler like the other handlers or whether I should special case it (and
then pass the interface directly and not through a void pointer).
Special casing the introspection might be a bit cleaner, but would cause
some duplication in sbus_message_handler().
The other question I have is whether there should be a way to mark an
interface as not introspectable? I can't think of a reason, so by
default all interfaces can be introspected.
The introspection also doesn't generate DocString annotations yet, I
will send a patch for that separately.