networkd: netdev - rename 'enslave' to 'join'

Enslave only really makes sense when referring to bridges and bonds, so try to be
a bit more neutral.
networkd: netdev - split out bridge creation
networkd: netdev - rework load_one

We now:
 - parse config
 - match on environment
 - verify and complement config
 - create netdev
networkd: netdev - introduce vtable for netdev kinds

Split each netdev kind into its own .h/.c.
sd-dhcp6-client: make gcc happy

It complains about {max,init}_retransmit_time possibly being
uninitialized. It is wrong, but let's just initialize it.
sd-dhcp-server: make gcc happy

It complains about optoffset possibly being uninitialized. It is wrong,
but let's just initialize it.
test: network - skip if we don't have permissions to create netdevs
networkd: link - fix memory leak

Make link_initialized() idempotent to avoid taking refs on several udev_device
objects.