lwip: Update the undi driver so it handles (in theory) all network types supported by undi
This involves on transmmit using theundi protocol types and letting
the undi layer put on the link level header, On receive this
involves using the undi parsing of the link level header and generation
of the link level type. This involves cloning etharp into undi.c
so we have our own set of arp functions that don't care how long
your hardware address is.
Using ethernet link layer frames directly removes a number of weird
limmitations so I do that by default when I know I am on ethernet
but that is not necessary, and a quick hack to change
undi_is_ethernet to always return false show that this code works
on whatever flavor of network adapter you have.
Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>