This patch introduces some minor refactoring of the dhcp
code so that it is easy to support both an in-node/same
process dhcp provisioning model (e.g. with dnsmasq) and
proxy model, where DHCP is provided by an external node.
Higher separation of concerns is also achieved by doing
better data encapsulation.
Implements blueprint dhcp-flexi-model
Change-Id: Icbd215e9682ecaebb6a4300423f3564e8e677566