[#42,!103] Initial receiver thread and packet queuing
New files:
src/lib/dhcp -
packet_queue.h - defines packet queuing template classes
socket_info.h - contains existing class extracted iface_mgr.h
tests/packet_queue4_unittest.cc
tests/packet_queue6_unittest.cc
src/lib/dhcp/iface_mgr.*
IfaceMgr:: - new functions
- receiveDHCP<4/6>Packets() - thread worker function which
monitors interface sockets, enqueues packets as they are read
- receiveDHCP<4/6>Packet() - reads a single packet from a socket
- startDHCPReceiver(const uint16_t family) - runs
receiveDHCP<4/6?appropriate worker function in a thread
- stopReceiver() - stops the receiver thread
- setPacketQueue<4/6> - replaces the default packet queue instance
receiveDHCP<4/6>() - modified to monitor receiver watch
socekts rather than interface sockets. Dequeue packets
from packet queue.