packet: Many improvements to DHCP

In particular, this adds classes to represent many DHCP options,
making it pretty easy to actually understand and create meaningful
DHCP packets.
packet: Fix whitespace in DHCP
misc: Add DHCP server

This adds a quick and dirty DHCP server.  It's not particularly
well tested or anything, and it's not nearly as configurable
as it should be.
core: Make listen_to_dependencies more flexible

You can now specify listener options.