sd-rtnl: message - make room for all pending messages, not just the first

Also, don't actually read any of the message when peeking, just get its length.
sd-rtnl: message - don't put NULL message on rqueue

If nothing interesting was receieved we should not put anything on
the queue.
sd-rtnl: message - concatenate multi-part messages from different packets
sd-rtnl: add multi-part message test
sd-rtnl: message - expose DUMP flag in the api
nss-myhostname: port to sd-rtnl
networkd: tie links to rtnl rather than udev

This essentially swaps the roles of rtnl and udev in networkd. After this
change libudev is only used for waiting for udev to initialize devices and
to get udev-specific information needed for some [Match] attributes.

This in particular simplifies the code in containers where udev is not really
useful, but also simplifies things and reduces round-trips in the non-container
case.
networkd: netdev - set predictable mac address when creating netdev
networkd: netdev - verify name of newlink messages
networkd: netdev - give up early when setting already set ifindex

We may receive RTM_NEWLINK messages with missing LINKINFO after the initial NEWLINK message,
don't bother verifying these, just drop out early after checking that the ifindex is not in conflict.