feat(dhcp): Add proper support for DHCP

Refactored the Network() generators into a shared generator. Now
each of the interfaces can generate the same .network configs.