Disable deletion of manually-entered neighbors

When a neighbor is manually added to the neighbor list via the xip
utility, that neighbor should not be removed from the neighbor list.
These nodes are kept in the neighbor list to keep routing compatible
in other XIA implementations.

To do this, insert_neigh() and new_ha() are given an additional
parameter, which requires a change in the prototype of insert_neigh()
in include/net/xia_hid.h. Every struct hrdw_addr now also has an
8-bit, unsigned flags field for whether the neighbor should be kept.
It is possible for this flag to take on the following bit values:

  * NWP_KEEP_ENTRY: if neighbor should not be deleted from the
    neighbor list at any time.
  * NWP_MIN_CLOCK: if any clock value is larger than the current
    remote clock.

Therefore, update_ha_sc() and find_update_neigh_sc() need to be aware
of the meanings of these values. Note that in find_update_neigh_sc(),
we can only remove the NWP_MIN_CLOCK flag if we are updating a neighbor
to ALIVE, since only in that case do we have a valid remote clock. In
update_ha_sc(), we have a valid remote clock in all cases so that flag
is always removed if it is present. clean_neigh_list() also should not
discard any neighbor who has a NWP_KEEP_ENTRY flag.