networkd: link - ignore missing MAC address from NEWLINK message

The kernel may broadcast such messages, simply discard them.
sd-rtnl: message_addr - expose a few more getters
sd-rtnl: multi-part message - store as linked-list rather than independent messages

This means the API can stay the same as for single-part messages by simply passing the head message around. Unrefing
the head of the linked list unrefs the whole list.
sd-rtnl: socket_read - use a read buffer

Rather than allocating/freeing memory for each message read, keep a global read buffer
in the rtnl object. Also, rather than using a fixed size, peek at the pending message
header to get the message size and reallocate as necessary.
sd-rtnl: message_addr - allow dumping of messages
networkd: link - make state changing logging a bit less verbose