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, signed
field for whether the neighbor should be kept. This field has three possible
values:

  * If keep == 0, then the neighbor may be deleted.
  * If keep == -1, then do not discard the neighbor, and recognize any remote
    clock update for this node as "newer" than the existing value of remote_sc.
  * If keep == 1, then do not discard the neighbor, and apply the normal
    methods for determining if remote_sc should be changed when updates are
    received.

Therefore, update_ha_sc() and find_update_neigh_sc() need to be aware of the
meanings of these values. clean_neigh_list() also should not discard any
neighbor who has a keep value of 1 or -1.