This change adds netlink create/modify/dump interfaces to the `if_clone.c`.
The previous attempt stored this logic inside `netlink/route/iface_drivers.c` did not quite work, as, for example, dumping interface-specific state (like vlan id or vlan parent) required some peeking into the private interfaces.
The new interfaces are added in a compatible way - callers don't have to do anything unless they are extended with Netlink.
However, this change finally puts the requirement of having Netlink as a standard part of the system - as `if_clone.c` now has a hard dependency on it.
This change will be split into a bunch of smaller diffs to simplify reviewing / merging.