Major cleanup due to x-connect and MPLS_ARP.

Misc. bugfixes and major cleanup:

Mapping of different nhlfe to specific Forward Information Bases
(aka fib) is possible now.

Further, massive cleanup of in netmpls/mpls.c remaining code
sections applies nhlfe lookup (some sections are merged into
netmpls/mpls_arp.c, partially).

Btw. in mpls_control() redundancy against nhlfe allocation in
mpls_xconnect_fib() was neutralized. Nhlfe will be allocated only
during mpls_xconnect_fib().

If an existing fec will be removed (by external event), then on
ifaddr{} by ifa_rtrequest hooked mpls_link_rtrequest() callback
removes all corrosponding MPLS label biding automatically.

Handling of gateway in rt_addrinfo{} by route(8) and netmpls/mpls_rmx.c
changed. Segements for x-connect are encoded by sockaddr_mpls{} maps to
sockaddr_ftn{}, where in-seg is stored by

 (a) satosmpls(gateway)->smpls_label = ...

and out-seg by

 (b) satosftn(gateway)->sftn_label = ...

Misc. bugfixes in netmpls/mpls_arp.c, optimized shortcut:

    static __inline void
    mpls_rtalloc_fib(struct mpls_ftn *ftn, u_int fibnum)
    {

        rtalloc_fib((struct route *)ftn, fibnum);
        if (ftn->ftn_ilm != NULL) {
            ftn->ftn_lle = ftn->ftn_lle = /* XXX: <= maps llentry{} */
                NHLFE_SHORTCUT(ftn->ftn_ilm->rt_ifa);
            ftn->ftn_ifa = ftn->ftn_ilm->rt_ifa;
            ftn->ftn_flags = ftn->ftn_ilm->rt_flags;
        }
    }

on LSR llentry{} maps to route{} avoids call of mpls_arpresolve
during i.e. ether_output, if tx host rx ARP_INVREPLY succesfully.

OID

 net.link.ether.mpls.proxy_arp= [01]

introduced. Let us assume:

 1. Alice performs x-connect such that corrosponding
 	llentry{} is allocated by if_ioctl() (i.e ether_ioctl())
 	invoked mpls_arp_ifinit().
 2. By mpls_output tx Protocol Data Unit (PDU) will
    be cached by mpls_arpresolve() selected llentry{}
    and mpls_arprequest() tx PDU hold ARPOP_INVREQUEST
    Service Primitive (SPI).
 3. Bob rx ARPOP_INVREQUEST by mpls_arpinput().
 4. If Bob is label peer, then Bob replies by
    tx ARPOP_INVREPLY containing Linklayer
    Address (LLA) maps to for tx used network
    interface.
 5. Alice rx ARPOP_INVREPLY, maps LLA to corrosponding
    llentry{} and tx by 2. cached PDU.

If proxy_arp OID remains in enabled state (default setup),
Bob tx during 4. an ARPOP_INVREQUEST downstream, before tx
ARPOP_INVREPLY against Alice takes place.

  +------+       < seg_i >                    < seg_j >
  |       \
  | Alice  +---[req, bcast]--->+------+
  |       /                    |       \
  +------+                     | Bob    +---[req, bcast]--->
          \                    |       /
           +<--[repl, ucast]---+------+
                                       \
                                        +<---[repl, ucast]--

 (upstream)                                       (downstream)

This cascade causes by mpls_output tx PDU is cached only by
LSR_in during mpls_arpresolve() and not by any intermediary
LSR until LSR_out in LSP.
    Maybe, proxy_arp could be used as a starting point for an
implementation for a traceroute mechanism or for a MPLS_ARP
piggybacked label distribution engine.