major, revamp ud_msg_s to include the service channel

The new policy is that only messages to the same service channel
can be packed.  If packing to channel A is followed by packing to
channel B, then the packet for A is sent off (implicitly) before
packing to B begins.

Signed-off-by: Sebastian Freundt <freundt@ga-group.nl>
hygiene, shorten __msg_fits_p() inline to one line

Signed-off-by: Sebastian Freundt <freundt@ga-group.nl>
minor, adapt ud_{pack,chck}_cmsg() to ud_msg_s containing the service channel already

Signed-off-by: Sebastian Freundt <freundt@ga-group.nl>
minor, kick ud_cmsg_s struct and rewrite UD_SVC as linear combination

Signed-off-by: Sebastian Freundt <freundt@ga-group.nl>
minor, adapt svc-pong.c to recent control message api changes

Signed-off-by: Sebastian Freundt <freundt@ga-group.nl>
minor, update service from svc slot in __sock_s instead of fiddling with the buffers directly

Signed-off-by: Sebastian Freundt <freundt@ga-group.nl>
minor, update svc field (in __sock_s) only after ud_flush()

Signed-off-by: Sebastian Freundt <freundt@ga-group.nl>
minor, sacrifice cno counter for another magic number 0x5544 (== "UD")

Also, turn all slots of the header into big-endian.

Signed-off-by: Sebastian Freundt <freundt@ga-group.nl>
test, adapt regression tests to new API

Signed-off-by: Sebastian Freundt <freundt@ga-group.nl>
Merge branch 'core/api' into next

* core/api:
  test, adapt regression tests to new API
  minor, sacrifice cno counter for another magic number 0x5544 (== "UD")
  minor, update svc field (in __sock_s) only after ud_flush()
  minor, update service from svc slot in __sock_s instead of fiddling with the buffers directly
  minor, adapt svc-pong.c to recent control message api changes
  minor, kick ud_cmsg_s struct and rewrite UD_SVC as linear combination
  minor, adapt ud_{pack,chck}_cmsg() to ud_msg_s containing the service channel already
  hygiene, shorten __msg_fits_p() inline to one line
  major, revamp ud_msg_s to include the service channel