Emulated (ethernet / internet) network support.

The emulated internet gateway support is just an ugly hack, just barely
enough to get some Internet networking up and running for the guest OS.

(The emulated internet support can be bypassed by using TAP networking.
In that case, packets from the emulated network are passed to a TAP
device, and it is up to you to make sure that any DNS hosts or other
servers are reachable.)

TODO:
	o)  TCP: fin/ack stuff, and connection time-outs and
	    connection refused (reset on connect?), resend
	    data to the guest OS if no ack has arrived for
	    some time (? buffers?)
		http://www.tcpipguide.com/free/t_TCPConnectionTermination-2.htm
	o)  remove the netbsd-specific options in the tcp header (?)
	o)  Outgoing UDP packet fragment support.
	o)  IPv6  (outgoing, incoming, and the nameserver/gateway)
	o)  Incoming connections

(TODO 2: The following comments are old! Fix this.)

The emulated NIC has a MAC address of (for example) 10:20:30:00:00:10.
From the emulated environment, the only other machine existing on the
network is a "gateway" or "firewall", which has an address of
60:50:40:30:20:10. This module (net.c) contains the emulation of that
gateway. It works like a NAT firewall, but emulated in userland software.

The gateway uses IPv4 address 10.0.0.254, the guest OS (inside the
emulator) could use any 10.x.x.x address, except 10.0.0.254. A suitable
choice is, for example 10.0.0.1.


	|------------------  a network  --------------------------------|
		^               ^				^
		|               |				|
	    a NIC connected    another NIC                the gateway
	    to the network					|
								v
							     outside
							      world

The gateway isn't connected as a NIC, but is an "implicit" machine on the
network.

(See http://www.sinclair.org.au/keith/networking/vendor.html for a list
of ethernet MAC assignments.)

