Make port status change messages reliable.
Until now, port status change messages were sent out by the datapath
implementations and simply relayed by secchan. In the kernel
implementation, they were unreliable because they were sent out over the
multicast socket used for packet-in events: if many packet-in messages
arrived and filled up that socket's receive buffer, then any subsequent
port status change messages were dropped.
This change moves port status change detection from the datapath
implementations into secchan, making them reliable, by using a
netdev_monitor.
(An alternate implementation would have been to detect the socket
receive buffer overflow and poll the network devices. The current
implementation was chosen because it removes code from the datapaths,
which is the direction we want to move in for the future.)