Changes due to MPLS_ARP and misc. bugfixes.

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 = ...

If fec will be removed, call of mpls_link_rtrequest removes all
corrosponding MPLS lanel biding automatically.
    Function mpls_rt_setgate_fib deprecated and its codesection merged with
mpls_rt_output_fib.
    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.
    Further, OID

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

was introduced. Let us assume:

 1. Alice perform x-connect such that llentry{} is
    allocated by if_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, 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
implementatiom for a traceroute mechanism or for a MPLS_ARP
piggybacked label distribution engine.
    Locking fault and memory leak by

    done:
        if (ftn == &ftn0)
            mpls_rtfree(ftn);

        if (drop != 0)
            m_freem(m);

in mpls_arpinput corrected.
    Misc. bugfixes and cleanup due to shortcut in netmpls/mpls_arp.c,
netmpls/mpls_output.c, net/if_ethersubr.c and
net/if_fddisubr.c