Introduce new NWP packet types and alter old ones

There are five new types of monitoring packets which are used
for detecting failure or disconnection between neighbors in a
LAN.

struct monitoring_hdr is the basic header for a monitoring
packet. Two or three hardware addresses are also placed in
the monitoring packet, depending on which part of the
monitoring process is happening. monitoring_pkt() and
monitoring_hdr_len() are functions to be used for
convenience of other functions.

Because each neighbor now has a status, it is necessary to
convey those statuses not just in the monitoring packets but
in announcement and neighbor list packets as well, so those
packet headers needed to be altered as well.